我建立在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 –