2017-03-31 107 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/ –

相關問題