根据用户过滤列表项';javascript中的搜索词

根据用户过滤列表项';javascript中的搜索词,javascript,jquery,regex,search,Javascript,Jquery,Regex,Search,我正在根据用户的输入过滤(显示和隐藏)一组列表项。在这里查看: 问题: 试着输入“comparison”这个词,你会看到列表中隐藏了“comparison”这个词,除了那些包含“comparison”这个词的列表。很好,到目前为止。。。但是,如果你点击空格并添加更多的术语,比如字符串中存在的单词“extracted”,它将找到包含这两个单词中任何一个的列表项。我想要的是和不是或者。基本上,我想显示包含这两个单词的列表项。因为正如你可以想象的那样,通过放置更多的术语,列表会变得更大而不是更小 我想

我正在根据用户的输入过滤(显示和隐藏)一组列表项。在这里查看:

问题: 试着输入“comparison”这个词,你会看到列表中隐藏了“comparison”这个词,除了那些包含“comparison”这个词的列表。很好,到目前为止。。。但是,如果你点击空格并添加更多的术语,比如字符串中存在的单词“extracted”,它将找到包含这两个单词中任何一个的列表项。我想要的是和不是或者。基本上,我想显示包含这两个单词的列表项。因为正如你可以想象的那样,通过放置更多的术语,列表会变得更大而不是更小

我想问题出在这行的正则表达式中

var search_text = jQuery('#search').val();
var rg= new RegExp('('+$.unique(search_text.split(" ")).join("|")+')',"i");
任何帮助都将不胜感激。
谢谢,试试这个。它应该是这样一个字符串:
^(?=.*honda)(?=.*accord)
。这样,字符串中的某个位置必须包含每个术语

var search_text = jQuery('#search').val();
var rg= new RegExp('^(?=.*?'+$.unique(search_text.split(" ")).join(")(?=.*?")+')',"i");

试试这个。它应该是这样一个字符串:
^(?=.*honda)(?=.*accord)
。这样,字符串中的某个位置必须包含每个术语

var search_text = jQuery('#search').val();
var rg= new RegExp('^(?=.*?'+$.unique(search_text.split(" ")).join(")(?=.*?")+')',"i");