1
我使用下面的js來突出顯示在html中搜索到的字符串的內容,但問題是這也影響了url字符串。JS正則表達式不包含在<a>中的單詞?
var a = new RegExp(keywords, "igm");
container.innerHTML = container.innerHTML.replace(a, "<span style='background:#FF0;'>" + keywords + "</span>");
如果關鍵字是URL,然後將URL與xxxx.com/<span style='background:#FF0;'>product</span>
這是錯誤的relaced。
那麼有什麼辦法可以過濾出不包含在url中的單詞嗎?不確定是否有RegExp可以做到這一點。提前致謝。
那麼,你不希望將innerHTML替換爲字符串,因爲這也會中斷容器中元素的當前eventListeners。您需要遍歷DOM節點,並使用parentNode上的條件檢查在textNodes上顯式執行替換操作。 – BGerrissen
可能重複的[如何使用JavaScript突出顯示文本](http://stackoverflow.com/questions/8644428/how-to-highlight-text-using-javascript) –
@Jack,看起來你的鏈接是關於簡單替換而已比避免HTML代碼。 @JerryCai只想對渲染文本進行操作而不影響代碼,例如''stuff fox'.safe_replace(/ f/igm,「b」)'會變成'stuff box'(或stubb?那部分對我來說不清楚)。 –