用于突出显示短语匹配的Javascript正则表达式
我编写了一个正则表达式,通过在短语周围添加一个span来突出显示文本中匹配的短语。文本可能包含,并且文本和短语中的任何位置都要匹配,忽略它。 以下是我的代码:用于突出显示短语匹配的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;
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"> $1 </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>