js 正则替换指定字符串


    
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>