This question already has answers here:
Regular Expressions: Is there an AND operator?
                                
                                    (12个答案)
                                
                        
                                4年前关闭。
            
                    
基于输入框,我的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”,该函数将搜索(“ alpha”或“ cen”)并根据需要返回一个记录。

但是,如果将“ |”替换为“ &”以搜索(“ alpha”和“ cen”),则不会得到任何结果。即使输入“ alpha centauri”,我也一无所获。

为什么?

最佳答案

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

10-04 22:14