用于突出显示短语匹配的Javascript正则表达式

用于突出显示短语匹配的Javascript正则表达式,javascript,regex,Javascript,Regex,我编写了一个正则表达式,通过在短语周围添加一个span来突出显示文本中匹配的短语。文本可能包含,并且文本和短语中的任何位置都要匹配,忽略它。 以下是我的代码: var phraseArray = phrase.split(" "); var phraseRegex = ""; if (phraseArray.length > 1) { var regexSuffix = '+([/\\s]|<\/b>|<b>)+'; for (var i = 0;

我编写了一个正则表达式,通过在短语周围添加一个span来突出显示文本中匹配的短语。文本可能包含,并且文本和短语中的任何位置都要匹配,忽略它。 以下是我的代码:

var phraseArray = phrase.split(" ");
var phraseRegex = "";
if (phraseArray.length > 1) {
    var regexSuffix = '+([/\\s]|<\/b>|<b>)+';
    for (var i = 0; i < phraseArray.length; i++) {
        phraseRegex += phraseArray[i] + regexSuffix;
        if (i == phraseArray.length - 2) {
            regexSuffix = "";
        }
    }
} else {
    phraseRegex = phrase;
}
text = text.replace(new RegExp('(' + '([,\\s]|<\/b>|<b>)+' + phraseRegex + '([\\s/,.*]|<\/b>|<b>)+' + ')', 'gi'), '<span class="highlighted">&nbsp;$1&nbsp;</span>');
输出结果如下:

<span class="highlighting"> <b>Airways Aviation</b>.</span> Airways Aviation  .Airways Aviation.  fra 
> Jet Airways.  Jet Airways (A range of talented people make it
> happen every day at<span class="highlighting"> Airways Aviation, .</span>
第二次出现的航空公司航空未突出显示。原因是什么?如何加强

[根据您的问题进行编辑编辑] [根据评论进行编辑]

全局匹配必须使用g标志

找到要匹配的单词 通过添加 +单词+//可以包含也可以不包含和在开始和结束处,g表示匹配所有 用span替换上述正则表达式 $&添加匹配项 var str=航空公司航空。航空公司,航空公司。fra喷气航空公司。印度Jet Airways印度航空公司(Jet Airways India)每天都有一批优秀人才在航空公司(Airways Aviation)任职。 函数测试字{ word=word.split.join | | \\s*; var re=新的RegExp?+字+?,'g'; console.logstr.replace,$&; }
测试航空;你的问题是什么?它不起作用了吗?还是你要求对你的代码进行增强?它不起作用了。原因是什么?如何加强?@ManojSuthar检查答案您的问题不清楚。这就是你想要的吗?谢谢你的回答。但对于航空公司来说,它失败了。粗体标记可以出现在短语中的任何位置。这个短语的任何单词或词组都可以用黑体字写。非常感谢萨加尔另一个可能发生的情况是,若短语是Airways Aviation,文本包含Airways Aviation。这怎么可能包括在内?
<span class="highlighting"> <b>Airways Aviation</b>.</span> Airways Aviation  .Airways Aviation.  fra 
> Jet Airways.  Jet Airways (A range of talented people make it
> happen every day at<span class="highlighting"> Airways Aviation, .</span>