RegExp()逻辑和/或结果意外

时间:2016-01-27 04:42:00

标签: javascript regex

我的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;)我没有得到任何结果。即使我输入“阿尔法半人马座”,我根本也没有结果。

为什么?

1 个答案:

答案 0 :(得分:1)

虽然正则表达式中的|允许交替,但&没有特殊含义。您当前的代码正在尝试查找alpha&cen的字面匹配,这显然与您的任何数据都不匹配。