我的javascript中有一个基于输入框的简单过滤功能。
function filter(selector, query) {
query = $.trim(query); //trim white space
query = query.replace(/ /gi, '|'); //add OR for regex
$(selector).each(function() {
($(this).text().search(new RegExp(query, "i")) < 0) ? (do something here)
所以,如果我有一个包含单词列表的表格,例如。
Alpha Centauri,
Beta Carbonate,
Charly Brown,
...
我输入'alpha cen&#39;在我的输入框中,该功能搜索(&#39; alpha&#39;或&#39; cen&#39;)并根据需要返回一条记录。
但是,如果我更换了&#39; |
&#39;使用&#39; &
&#39;搜索(&#39; alpha&#39;&#39; cen&#39;)我没有得到任何结果。即使我输入“阿尔法半人马座”,我根本也没有结果。
为什么?
答案 0 :(得分:1)
虽然正则表达式中的|
允许交替,但&
没有特殊含义。您当前的代码正在尝试查找alpha&cen
的字面匹配,这显然与您的任何数据都不匹配。