如何将三段JS正则replace代码合并为一行?
合并移除HTML标签的正则表达式
你可以把三个独立的正则替换合并成一次replace调用,通过正则分支(|)把三种匹配模式整合到一个表达式里:
const text = $('.text').attr('title'); const bind = text.replace(/<(span|i)[^>]*>.*?<\/\1>|<img[^>]*>|<\/?div[^>]*>/g, ''); console.log(bind); // 输出: Lorem Ipsum
正则说明
拆分这个合并后的正则,每个分支对应原来的一种处理逻辑:
<(span|i)[^>]*>.*?<\/\1>:匹配完整的<span>或<i>标签对,包括标签属性和内部内容,\1确保闭合标签与起始标签一致<img[^>]*>:匹配任意<img>自闭合标签(包含所有属性)<\/?div[^>]*>:匹配<div>起始标签或</div>闭合标签(包含所有属性)
完整测试代码
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div title="Lorem Ipsum<div><img src='test.png'><i class='fa fa-check'></i></div>" class="text">Lorem Ipsum has been the industry's standard</div> <script> const text = $('.text').attr('title'); const bind = text.replace(/<(span|i)[^>]*>.*?<\/\1>|<img[^>]*>|<\/?div[^>]*>/g, ''); console.log(bind); </script>
内容的提问来源于stack exchange,提问作者Saravana
相关产品推荐
相关产品推荐

