javascript - 搜索词突出显示代码无法正常工作

标签 javascript jquery

我使用了一段 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/

相关文章:

javascript - react-native 构建错误(开发服务器返回响应错误代码 : 500)

javascript - 如何设置HTML5音频的响度?

forms - jQuery:使用 "live"方法阻止然后不阻止表单提交

jquery - 仅在可见div时播放声音文件?

javascript - 如何使文本在页面加载时向右滑动?

javascript - 具有多个条件的多个 <td>

Javascript php验证,在2个文本框中填写一个文本框后第二次提交表单提交

javascript - 在页面加载或点击发生之前窗口会弹出什么?移动版

javascript - 提高jquery/javascript网页逻辑的性能

javascript - 映射对象数组返回未定义