我使用了一段 jQuery 来突出显示搜索结果,它工作得很好,但我想匹配所有单个单词而不是我输入的整个短语,如果我搜索“lorem ipsum dolor”,它会查找此匹配项短语,但我希望脚本突出显示所有单个单词而不是整个短语
这是我的 jQuery 代码
$("#main-search-input").bind('keyup', function(e){
var text = $.trim($(this).val());
if(text !== '' && text !== ' '){
var pattern = new RegExp(text, "gi");
}
$('.sr-results a').each(function(i){
var str = this;
var orgText = $(str).text();
orgText = orgText.replace(pattern, function($1){
return "<b class='sr-highlight'>" + $1 + "</b>";
});
$(str).html(orgText);
});
});
最佳答案
将字符串拆分为一个空格,然后将正则表达式构建为/(word1|word2|word3)/。
var pattern = new RegExp('('+$.unique(text.split(" ")).join("|")+')',"gi");
关于javascript - 搜索词突出显示代码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6065499/