Javascript 如何用HTML标记替换包含字符串的文本?

Javascript 如何用HTML标记替换包含字符串的文本?,javascript,html,replace,html-entities,Javascript,Html,Replace,Html Entities,我正在尝试解决如何用HTML标记替换页面上匹配某个短语的任何文本实例-内容应该保持不变 bold("Hello") 上述代码应替换为: <b>Hello</b> 你好 以下是我当前使用的代码: node.data = node.data.replace('bold("','<b>'); node.data = node.data.replace('")','</b>'); node.data=node.data.replace('bold(

我正在尝试解决如何用HTML标记替换页面上匹配某个短语的任何文本实例-内容应该保持不变

bold("Hello")
上述代码应替换为:

<b>Hello</b>
你好 以下是我当前使用的代码:

node.data = node.data.replace('bold("','<b>');
node.data = node.data.replace('")','</b>');
node.data=node.data.replace('bold(“,”);
node.data=node.data.replace(“”,“”);
问题在于,它不是创建
标记,而是将
转换为它们的HTML实体-

而且,用
替换所有
实例似乎不现实

实现这一目标的最佳方式是什么


我非常感谢您的帮助,谢谢!

Regex帮助您解决更换问题

var str='bold(“Hello”);
var regex=/bold\((.*?)\)/;
str=str.replace(regex,“$1”);

console.log(str);
Regex有助于解决替换问题

var str='bold(“Hello”);
var regex=/bold\((.*?)\)/;
str=str.replace(regex,“$1”);

console.log(str);
我假设你不是字面上指页面上的所有文本,而是指给定元素中的所有文本。DucFilans对regex很感兴趣,我将稍微修改他的答案,以提供一个完整的工作解决方案:

var parserRules=[
{pattern:/bold\(“(.*?”\)/g,替换:'$1'},
{pattern:/italics\(“(.*?”\)/g,替换:'$1'}
];
document.querySelectorAll('.parse').forEach(函数(标记){
var-inner=tag.innerHTML;
forEach(函数(规则){
内部=内部.replace(rule.pattern,rule.replacement)
});
tag.innerHTML=内部;
});

粗体(“你好”)世界玫瑰斜体(“粉红”)慢速粗体(!”

粗体(“astiago”)奶酪!
我假设你的意思不是页面上的所有文本,而是给定元素中的所有文本。DucFilans对regex的理解是正确的,我将稍微修改他的答案,以提供一个完整的工作解决方案:

var parserRules=[
{pattern:/bold\(“(.*?”\)/g,替换:'$1'},
{pattern:/italics\(“(.*?”\)/g,替换:'$1'}
];
document.querySelectorAll('.parse').forEach(函数(标记){
var-inner=tag.innerHTML;
forEach(函数(规则){
内部=内部.replace(rule.pattern,rule.replacement)
});
tag.innerHTML=内部;
});

粗体(“你好”)世界玫瑰斜体(“粉红”)慢速粗体(!”

粗体(“astiago”)奶酪!
您需要使用createElement()。或者这可能会帮助您:什么是
节点。数据
,…?如果您想学习,请阅读几乎所有javascript初学者指南。可能的副本需要使用createElement())相反。或者这有助于您:什么是
节点.data
,…?如果您想学习,请阅读几乎所有的javascript初学者指南。可能重复