yewanji 2022-12-10 03:46 采纳率: 34.7%
浏览 28
已结题

js 正则替换指定字符串

<body>
    <div class="body">
        张三
        <span style="color: red">张三</span>
    </div>
</body>

如何用正则将body里面的html 中的张三换成李四,但是被span标签包裹的那个张三不要被替换

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-10 03:57
    关注

    如果要用正则表达式来替换指定的字符串,可以使用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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月10日
  • 已采纳回答 12月10日
  • 创建了问题 12月10日