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(/ /g, "-");
} else {
return word
}
}
);
repStr = repStr.substring(1, repStr.length - 1);
return repStr;
}
var str = '<div class="block" >a b 我 是<span>STOP to opt</span> 内 容</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,'')