[英]regex check if there are any valid script tags in string
我想匹配 HTML 字符串中的脚本标记,其中可能有也可能没有注释。
一些例子,
<!-- <script>...</script> --> <script src='test.js'></script>
<!-- <script>...</script> -->
我只想匹配第一个示例。
这是我想出的,但它不起作用,任何帮助表示赞赏。 谢谢
/(<!--.*?-->)*.*<script[\s>\/]/gmi
使用DOMParser
解析您的字符串以获取 HTML 树,然后使用querySelectorAll
来计算元素。
请参阅下面的片段:
var str = "<!-- <script>...<\\/script> --> <script src='test1.js'><\\/script><!-- <script>...<\\/script> --><script src='test2.js'><\\/script>"; var parser = new DOMParser(); var doc = parser.parseFromString(str, 'text/html'); var howManyScripts = doc.querySelectorAll('script').length; console.log(howManyScripts);
尝试使用这个正则表达式:
<script src=['"]{1}.+['"]{1}>[.\s]*<\/script>
此正则表达式适用于大多数脚本标记情况
例如。 <script src="myscript.js"></script>
/([<&][az]*[;]*)(script( .+[=]["'].+["'])*)([>&]*[az]*[;]*)([^>]*([<&][az]*[;]*)*(\\/script)([>&]*[az]*[;]*))*/gi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.