我根据用户的输入过滤(显示和隐藏)一组列表项。在这里查看:http://jsfiddle.net/m5dzG/2/
问题: 尝试输入“比较”一词,您将看到列表隐藏,但其中包含“比较”一词的列表除外。好到目前为止...但如果你点击空格并添加更多的术语,如该字符串中存在的“外推”一词,它将找到具有这些词之一的列表项。我想要的是AND而不是OR。基本上我想显示包含这两个单词的列表项。因为正如你可以想象的那样,通过增加更多的术语,列表变得更大而不是更小。
我认为问题出在我的正则表达式中
var search_text = jQuery('#search').val();
var rg= new RegExp('('+$.unique(search_text.split(" ")).join("|")+')',"i");
任何帮助将不胜感激。 感谢
答案 0 :(得分:1)
试试这个。它应该是这样的字符串:^(?=.*?honda)(?=.*?accord)
。这样,字符串必须在字符串中的某个位置包含每个术语。
var search_text = jQuery('#search').val();
var rg= new RegExp('^(?=.*?'+$.unique(search_text.split(" ")).join(")(?=.*?")+')',"i");