gpt4 book ai didi

javascript - 如何用 HTML 标签替换包含字符串的文本?

转载 作者:行者123 更新时间:2023-12-02 17:16:43 26 4
gpt4 key购买 nike

我正在尝试找出如何用 HTML 标记替换页面上与特定短语匹配的任何文本实例 - 内容应保持不变。

bold("Hello")

上面的代码应该替换为:

<b>Hello</b>

这是我目前使用的代码:

node.data = node.data.replace('bold("','<b>');
node.data = node.data.replace('")','</b>');

问题是,而不是创建一个 <b>标签,它会转换 <>进入他们的 HTML 实体 - < >.

此外,替换 ") 的所有实例似乎不切实际与 </b> .

实现此目标的最佳方法是什么。

如果有任何帮助,我将不胜感激,谢谢!

最佳答案

我假设您的意思不是字面意义上的页面上的所有文本,而是给定元素内的所有文本。 DucFilans 正则表达式是正确的,我将稍微修改他的答案以提供完整的工作解决方案:

var parserRules = [
{ pattern: /bold\("(.*?)"\)/g, replacement: '<b>$1</b>' },
{ pattern: /italics\("(.*?)"\)/g, replacement: '<i>$1</i>' }
];

document.querySelectorAll('.parse').forEach(function(tag) {
var inner = tag.innerHTML;
parserRules.forEach(function(rule) {
inner = inner.replace(rule.pattern, rule.replacement)
});
tag.innerHTML = inner;
});
<div class='parse'>
<div>bold("Hello") world <p> Rose italics("pink") slow bold("!") </p> </div>
<div>bold("astiago") cheeeeeeese!</div>
</div>

您可以在 parserRules 数组中定义正则表达式模式和替换规则,然后将解析任何标有“parse”类的元素。一个警告是这将替换所有子元素,因此如果您依赖附加到子元素或类似内容的监听器,您也需要注意这一点。

关于javascript - 如何用 HTML 标签替换包含字符串的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019042/

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