如何正则匹配带有 > 字符的 script 标签内容?
字符的 script 标签内容? " />
正则完整匹配 script 标签中间内容
问题: 如何正则捕获 script 标签中间部分的内容,即使属性插入了 > 字符?
解决:
可以使用如下优化后的正则表达式:
/(<script([^"<>]+|"[^"]*")*>)([sS]*?)(</script>)/g
分析:
此正则由以下部分组成:
- (.?): 匹配非引号字符(1)或引号包围的字符("1"),从而排除引号的影响。
- ([sS]*?): 匹配 script 标签之间的所有内容,包括换行符。
- (): 匹配关闭 script 标签。
示例:
以下 PHP 代码:
<script src="static/js/jsencrypt.js?v=<?= WEB_VERSION ?>"></script> <script src="static/js/jquery.form.js?v=<?= WEB_VERSION ?>"></script> <script type="text/javascript"> var a = 1; var b = 2; </script>
使用上述正则表达式可以匹配第三个 script 标签内的内容,结果如下:
var a = 1; var b = 2;
- " ↩
以上就是如何正则匹配带有 > 字符的 script 标签内容?的详细内容,更多请关注硕下网其它相关文章!