我在StackOverflow上找到了一个有用的帖子,我在网站上使用 hightlight 特定文字:Link to Answer
我会再次发布(修改):
function hiliter(word) {
var rgxp = new RegExp(word, 'g');
var repl = '<span class="highlight">' + word + '</span>';
content.innerHTML = content.innerHTML.replace(rgxp, repl);
}
现在我尝试使用此功能在<
和>
之间找到
hiliter('<(.*)>');
这会找到我要高亮显示的正确部分,但输出更改,例如页面上 <Example>
到<(.*)>
。
如何使用此通配符进行搜索,但在替换时保留通配符搜索中的html?
提前致谢!
答案 0 :(得分:3)
您可以将功能传递给.replace
[MDN]:
function hiliter(word) {
var rgxp = new RegExp(word, 'g');
content.innerHTML = content.innerHTML.replace(rgxp, function(match, word) {
return '<span class="highlight">' + match + '</span>';
});
}
word
将包含第一个捕获组的内容,即.*
匹配的内容,match
将包含整个匹配,即包含<
和>
。
一般说明:如果使用innerHTML
,则会销毁并创建所有HTML元素。通过JavaScript绑定的事件处理程序将被销毁。