我有一个文本,并且我希望当用户搜索一个术语时,通过用标记标记包装术语来突出显示该术语。用正则表达式标记字符串中的文本,但排除链接
JavaScript来包裹匹配项:
var sampleText = window.document.getElementById('test').innerHTML;
var _keywordHighlight = function (text, term) {
var pattern = new RegExp('('+term+')', 'gi');
text = text.replace(pattern, '<mark>$1</mark>');;
return text;
};
var newText = _keywordHighlight(sampleText, 'sample');
window.document.getElementById('test').innerHTML = newText;
jsfiddle.net链接:
https://jsfiddle.net/homa/j0Lgk6pf/
的问题是,该网址内搜索词也被标记标签包装就坏了链接。
如何排除要用标记包裹的链接?
尝试'VAR模式=新的正则表达式;'和'与 ' $&''取代。另请参阅http://stackoverflow.com/questions/18621568/regex-replace-text-outside-html-tags –