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

时间:2017-10-12 20:16:23

标签: javascript vue.js vuejs2

我有一个过滤器,它根据名字和姓氏返回数组。我把它作为案例说明了。但问题是,当我按空格时,它不会返回任何结果。例如,让我们说名称是(包括名字和姓氏)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());
            })
        }

1 个答案:

答案 0 :(得分:2)

如果你想匹配全名,你应该检查第一个+ last,如下所示:

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,' '))

   })
}

这用一个空格替换用户输入中的额外空格。从名字和姓氏中删除任何额外空格。连接第一个+最后一个并进行比较。

如果您想匹配名字或姓氏或全名,则需要将其与之前的功能相结合。