我有一個文本,並且我希望當用戶搜索一個術語時,通過用標記標記包裝術語來突出顯示該術語。用正則表達式標記字符串中的文本,但排除鏈接
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 –