2017-03-31 77 views
0

我想通过键入空格来筛选列表(就像任何其他字符一样)。如何在输入列表时按过滤器中的空间进行过滤?

当前的代码是:

var search = $.trim($(this).val().replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")); 

如果我在我的名单vege tables和我键入一个空格,或字母e和空间,或者空间和信t,列表应该过滤,以显示vege tables

我试图\ s添加到代码,但我所希望的是不工作:

var search = $.trim($(this).val().replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|\s]/g, "\\$&")); 

我缺少的东西?

回答

0

下面是如何基于模式过滤叮咬列表的示例。

function filter(list, pattern) { 
    return list.filter(function(item) { 
    return pattern.test(item); 
    }); 
} 
const list = ['vege tables', 'man eater', 'word']; 
console.log('Current list: ', list); 

var pattern = ' e'; 
console.log('Filter by: "' + pattern + '"'); 

pattern = new RegExp(pattern, 'gi'); // convert the pattern to regex 
console.log(filter(list, pattern)); // get filtered list, ['man eater'] 
+0

感谢您的示例。如何将其整合到现有代码中而不会对现有过滤造成不利影响? https://jsfiddle.net/djj2c84t/5/ –

相关问题