Java/Js下使用正则表达式匹配嵌套Html标签
程序员文章站
2022-06-22 14:41:53
通用 html 标签区配正则 最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 html 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣。就拿回来改改...
通用 html 标签区配正则
最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 html 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣。就拿回来改改,成了下面这样,可能会有一些 case 遗漏,欢迎修改,已知在内嵌 <script> 复杂内容的处理能力较弱,不过对纯 html 来说已经够用,拿来做一些分析工具还是不错滴。
<script type="text/javascript">
var str = "<br /><br/><br><br ><中文><div><div id=a>无忧脚本<img src=\"http://bbs.51js.com/images/default/logo.gif\" width=\"191\" height='75' border=0 onload=\"if(testver>0 && testver<500)alert('test');\" \n onerror='alert(\"test\")' /><img src=xxx alt=\"hello\njust 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=\"http://bbs.51js.com/images/old51js/logo.gif\" /><!-- 三注释>>> -->";
var reg = /<(?:(?:\/?[a-za-z]\w*\b(?:[=\s](['"]?)[\s\s]*?\1)*)|(?:!--[\s\s]*?--))\/?>/g;
alert(str.match(reg).join("\n----------------------------------------------------\n"));
</script>
[ctrl+a 全选 注:如需引入外部js需刷新才能执行]
最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 html 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣。就拿回来改改,成了下面这样,可能会有一些 case 遗漏,欢迎修改,已知在内嵌 <script> 复杂内容的处理能力较弱,不过对纯 html 来说已经够用,拿来做一些分析工具还是不错滴。
复制代码 代码如下:
<script type="text/javascript">
var str = "<br /><br/><br><br ><中文><div><div id=a>无忧脚本<img src=\"http://bbs.51js.com/images/default/logo.gif\" width=\"191\" height='75' border=0 onload=\"if(testver>0 && testver<500)alert('test');\" \n onerror='alert(\"test\")' /><img src=xxx alt=\"hello\njust 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=\"http://bbs.51js.com/images/old51js/logo.gif\" /><!-- 三注释>>> -->";
var reg = /<(?:(?:\/?[a-za-z]\w*\b(?:[=\s](['"]?)[\s\s]*?\1)*)|(?:!--[\s\s]*?--))\/?>/g;
alert(str.match(reg).join("\n----------------------------------------------------\n"));
</script>
[ctrl+a 全选 注:如需引入外部js需刷新才能执行]
上一篇: 679. 24 点游戏
下一篇: PHP4实际应用经验篇(7)