js正则表达式清除html标签中的class属性,去除html标签,替换内容

17 篇文章 1 订阅
2 篇文章 0 订阅

1.清除指定标签包括内容

var str = '<div><i>我是被清除的</i>我不被清除</div>';
str.replace(/<i[^>]*>[^<]*<\/i>/gi,'');
console.log(str) //<div>我不被清除</div>

2.清除class

var str = '<div class="block" ><i class="iconfont" ></i>我是内容</div>';
str.replace(/class\s*?=\s*?([‘"])[\s\S]*?\1/ig, '');
console.log(str) //<div><i></i>我是内容</div>

3.清除标签不包含内容

var str = '<div class="block" ><i class="iconfont" ></i>我是内容</div>';
str.replace(/<\/?.+?\/?>/gm,'');
console.log(str) //我是内容

4.除了特定的标签都清除,标签内的内容不会被清除

var str = '<div class="block" >xxx<br><span>aaa</span>我是内容</div>';
str.replace(/<(?!br).*?>/g, "");
console.log(str) //xxx<br>aaa我是内容

5.遍历标签,替换内容

function replaceNotHtmlBlank(str) {
      var str = ">" + str + "<";
      var repStr = str.replace(/>[^<]*[^<]*</g, function (word) {
        if (word != ">STOP to opt<") {
          return word.replace(/&nbsp;/g, "-");
        } else {
          return word
        }
      }
      );
      repStr = repStr.substring(1, repStr.length - 1);
      return repStr;
    }

var str = '<div class="block" >a&nbsp;b&nbsp;我&nbsp;是<span>STOP to opt</span>&nbsp;内&nbsp;容</div>';
console.log(replaceNotHtmlBlank(str)) //<div class="block" >a-b-我-是<span>STOP to opt</span>-内-容</div>

6.指定标签不会被清除

除了strong、em、p、u标签,其他标签全部清除

str =  str.replace(/<(?!\/?strong|\/?em|\/?p|\/?u)[^<>]*>/ig,'')


 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值