我建立在JavaScript中自動完成,需要強調的話做一個搜索時:正則表達式的轉義字符突出
這工作正常,但有一個與轉義字符的問題。 當試圖突出與轉義字符的文本(例如regex &>< example
),下面是發生的事情:
這是怎麼回事,因爲我做了以下內容:
element.innerHTML.replace(/a/g, highlight)
function highlight(str) {
return '<span class="foo"' + '>' + str + '</span>';
}
和innerHTML
包括字&
,所以它是有道理的。
最後,我需要一種方法來解決,所以我想一個函數:
- 接收
a
和regex <br> example
並返回regex <br> ex<span class="foo">a</span>mple
- 接收
r
和regex <br> example
並返回<span class="foo">r</span>egex <b<span class="foo">r</span>> example
- 接收
<
和regex <br> example
並返回regex <span class="foo"><</span>br> example
的條目可能會或可能不會包含HTML塊,看問題here(搜索<br>
或&
)
如果你不想實體退換,使用'textContent'獲取內容,而'innerHTML'與跨度包括設置呢? – adeneo
'textContent'具有字符轉義(即:'&'),它的正好不包括html,比如'span's,所以不起作用 – lante
這看起來像是另一個例子'你不能用常規表達式的情景:http://stackoverflow.com/a/1732454/25216 –