我正在开发一个自动完成组件,它突出显示所有搜索文本的出现。我所做的是按单词分解输入文本,并将这些单词的每一次出现都包装成一个
我的代码看起来像这样
inputText = 'marriott st';
text = "Marriott east side";
textSearch = inputText.split(' ');
for (var i in textSearch) {
var regexSearch = new RegExp('(?!<\/?strong>)' + textSearch[i]), "i");
var textReplaced = regexSearch.exec(text);
text = text.replace(regexSearch, '< strong>' + textReplaced + '< /strong>');
}
例如,给定结果:“万豪东区”
输入文本:“marriott st”
我应该得到
<strong>marriot< /strong > ea < strong >st < /strong > side
我得到了
<<strong>st</strong>rong>marriot</<strong>st </strong>rong>ea<<strong>st</strong> rong>s</strong> side
有什么想法可以改进我的正则表达式,以避免在 html 标签中出现?谢谢
/(?!<\/?strong>)st/