gpt4 book ai didi

javascript - RegExp 通配符不应覆盖

转载 作者:行者123 更新时间:2023-11-28 21:15:30 26 4
gpt4 key购买 nike

我在 StackOverflow 上找到了一篇有用的帖子,我用来突出显示网站上的特定文本: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('&lt;(.*)&gt;');

这找到了我想要突出显示的正确部分,但输出更改例如<强> <Example><(.*)> 在页面上。

如何使用此通配符进行搜索,但在替换时保留通配符搜索中的 html?

提前致谢!

最佳答案

您可以将函数传递给 .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 绑定(bind)的事件处理程序将被销毁。

关于javascript - RegExp 通配符不应覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com