经常要用到去除某个html标记的需求,如去掉font、span之类的,通过下面的正则代码就OK了。
<script type="text/javascript"> html = document.body.innerHTML html = html.replace(/(<\/?(font|span)[^>\/]*)\/?>/gi,''); document.body.innerHTML = html </script>
有很多同学不理解此正则表达式的含义,从左到右匹配的规则如下:
1、先看<\/? 这个意思是匹配<或者</,\是转义,?表示的是匹配前面的子表达式零次或一次; 2、接下来,(font|span),()分组表达式,包含font或者span这两个内容; 3、[^>\/]*,[]表达式,匹配不包含>/这两个字符,后面的*表示的是匹配前面的子表达式零次或多次,再明白点说就是font或者span后面的字符只要不是/或者>,就一直匹配下去; 4、(<\/?(font|span)[^>\/]*)\/?>,匹配包含<font>、<font ****任意内容但不包括"/>">、</font>、</font 任意内容但不包括"/>">、<span>、<span ****任意内容但不包括"/>">、</span>、</span ****任意内容但不包括"/>">;
还有很多同学不知道/gi的含义,如下:
正则表达式中/i,/g,/ig,/gi,/m的区别和含义
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)