通用 HTML 标签区配正则
最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 HTML 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣。就拿回来改改,成了下面这样,可能会有一些 case 遗漏,欢迎修改,已知在内嵌 <script> 复杂内容的处理能力较弱,不过对纯 HTML 来说已经够用,拿来做一些分析工具还是不错滴。
<script type="text/javascript">
var str = "<br /><br/><br><br ><中文><div><div id=a>无忧脚本<img src="/Upload/20180912131351hlXY.gif" width="191" height='75' border=0 onload="if(testver>0 && testver<500)alert('test');" n onerror='alert("test")' /><img src=xxx alt="hellonjust a test!"></div><hr ><script type="test/javascript" defer>alert("just a test!");</script>Hello.<input type=text value="无忧脚本"><br / ><img "" ></ ><!-- 注释 -->< ucren><!-- 再<注>释 --><img alt=' title='"' /><b>123</b>1<2<3,3<4>1<b><img src="/Upload/20180912131352hEsR.gif" /><!-- 三注释>>> -->";
var reg = /<(?:(?:/?[A-Za-z]w*b(?:[=s](['"]?)[sS]*?1)*)|(?:!--[sS]*?--))/?>/g;
alert(str.match(reg).join("n----------------------------------------------------n"));
</script>
<div [^>]*id='footer'[^>]*>(<div[^>]*>(<div[^>]*>(<div[^>]*>.*?</div>|.)*?</div>|.)*?</div>|.)*?</div>
所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。
这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。
本文来源:
网梦CMS小程序,转载请注明出处!如果需要
合肥网站建设 合肥小程序开发 合肥微信开发 合肥APP开发请联系刘经理,我们将提供上门服务!
联系方式:手机:13355693937 QQ:43171398 或扫一扫下面二维码加我微信: