我想做这样的事情:
/<script[^>]*>(?!<\/script>)*<\/script>/g
使用javascript匹配html字符串中的所有脚本标记。
我知道这不起作用,但我似乎无法找到任何其他解决方案。
script-tag可以使用src属性并在(<script src="..." type="text/javascript"></script>
)之后自行关闭它,也可以包含脚本标记中的代码(<script type="text/javascript">...</script>
)
答案 0 :(得分:6)
你很亲密
/<script[^>]*>(?:(?!<\/script>).)*<\/script>/g
你必须有东西吃实际的脚本体。这就是.
在这里做的事情。
前瞻检查必须在每个字符之前进行,因此它包含在一个额外的(非捕获)组中。要捕获组1中的脚本源代码,只需在(?:...)
周围添加另一组parens,如评论中指出的@AlanMoore。
答案 1 :(得分:2)
试试这个
/<script[^>]*>.*?<\/script>/g
我没有看到未来出现负面看法的原因。 .*?
是一个懒惰的匹配,因此它只匹配到下一个结束标记,而不是直到最后一个。