如何正则匹配带有 > 字符的 script 标签内容?

如何正则匹配带有 > 字符的 script 标签内容? 
字符的 script 标签内容? " />

正则完整匹配 script 标签中间内容

问题: 如何正则捕获 script 标签中间部分的内容,即使属性插入了 > 字符?

解决:

可以使用如下优化后的正则表达式:

/(<script([^"<>]+|"[^"]*")*>)([sS]*?)(</script>)/g

分析:

此正则由以下部分组成:

  1. (.?): 匹配非引号字符(1)或引号包围的字符("1"),从而排除引号的影响。
  2. ([sS]*?): 匹配 script 标签之间的所有内容,包括换行符。
  3. (): 匹配关闭 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;

  1. " ↩

以上就是如何正则匹配带有 > 字符的 script 标签内容?的详细内容,更多请关注硕下网其它相关文章!