我想在可能有注释也可能没有注释的HTML字符串中匹配脚本标签。
一些例子
<!-- <script>...</script> --> <script src='test.js'></script>
<!-- <script>...</script> -->
我只想匹配第一个示例。
这是我想出的,但是它不起作用,任何帮助,我们都感激不尽。谢谢
/(<!--.*?-->)*.*<script[\s>\/]/gmi
答案 0 :(得分:0)
使用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);
答案 1 :(得分:0)
尝试使用此正则表达式:
<script src=['"]{1}.+['"]{1}>[.\s]*<\/script>
答案 2 :(得分:0)
这个正则表达式适用于大多数脚本标签情况
例如。
/([<&][a-z]*[;]*)(script( .+[=]["'].+["'])*)([>&]*[a-z]*[;]*)([^>]*([<&][a-z]*[;]*)*(\/script)([>&]*[a-z]*[;]*))*/gi