我有一个过滤器,它根据名字和姓氏返回数组。我让它不区分大小写。但问题是,当我按空格时,它不会返回任何结果。例如,假设名字是(包括名字和姓氏)Sadek Hossain
。现在,如果我搜索 sadek
它可以工作,但如果我输入 sadek hossain
或 Sadek Hossain
它永远不会工作。一旦按下空格,它就不起作用。
这是我正在使用的过滤器代码。
filterUser(){
return this.buddylist.filter((buddy)=>{
return buddy.oponent.firstName.toLowerCase().match(this.search.toLowerCase()) || buddy.oponent.lastName.toLowerCase().match(this.search.toLowerCase());
})
}
最佳答案
如果您想匹配全名,您应该检查第一个+最后一个,例如:
filterUser(){
return this.buddylist.filter((buddy)=>{
var fullname = buddy.oponent.firstName.trim() + " " + buddy.oponent.lastName.trim()
return fullname.toLowerCase().match(this.search.toLowerCase().trim().replace(/\s+/g,' '))
})
}
这会将用户输入中的多余空格替换为一个空格。去掉名字和姓氏中的任何多余空格。连接第一个 + 最后一个并进行比较。
如果您想匹配名字、姓氏或全名,您需要将其与之前的函数结合起来。
关于javascript - 当按下空格时,Vue js 过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46718159/