Vue js 过滤器在按下空格时不起作用



我有一个过滤器,它根据名字和姓氏返回数组。我把它说得很不合理。但问题是当我按下一个空格时,它不会返回任何结果。例如,假设名称是(包括名字和姓氏)Sadek Hossain。现在,如果我搜索sadek它可以工作,但如果我输入sadek hossainSadek 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,' '))
   })
}

这会将用户输入中多余的空格替换为一个空格。去除名字和姓氏的任何多余空格。连接第一个 + 最后一个并进行比较。

如果你想匹配名字、姓氏或全名,你需要将其与你之前的函数结合起来。

最新更新