我写了一个正则表达式,通过在短语中添加跨度来突出显示文本中的匹配短语。该文本可能包含文本中任何地方的<b>
和</b>
,并且短语将被忽略。 以下是我的代码:使用Javascript RegEx突出显示短语匹配
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>');
如果短语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>
第二次出现是不突出。这是什么原因以及如何加强?
你有什么问题吗?它不工作还是你要求改进你的代码? – Rikin
它不工作。可能是什么原因以及如何加强? –
@ManojSuthar检查你的问题答案并不清楚。那是你要的吗? –