<body>
<div class="body">
张三
<span style="color: red">张三</span>
</div>
</body>
如何用正则将body里面的html 中的张三换成李四,但是被span标签包裹的那个张三不要被替换
如果要用正则表达式来替换指定的字符串,可以使用JavaScript的replace()方法。例如,把上面例子中的HTML代码中的所有"张三"替换为"李四",不包括被标签包裹的"张三",可以这样做:
var html = '<body><div class="body">张三<span style="color: red">张三</span></div></body>';
// 定义正则表达式,匹配HTML代码中除了被<span>标签包裹的字符串以外的所有"张三"
var regex = /(?!<span[^>]*>)(张三)(?![^<]*<\/span>)/g;
// 使用replace()方法替换所有匹配到的字符串
var replaced = html.replace(regex, '李四');
console.log(replaced);
// 输出:<body><div class="body">李四<span style="color: red">张三</span></div></body>