[英]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.