javascript RegExp:如何匹配multiline和closetag

gui*_* 桂林 4 javascript regex node.js

var ex = /(<script\s?[^>]*>)([\s\S]*)(<\/script>)/;
//Note: here is 2 script tags
var str = '<script>\nvar x=0;\n</script>\n<div>\nhtml\n</div>\n<script>var y=0;\n</script>'
str.replace(ex, function(full, prefix, script, suffix) {
    return prefix + doSomething(script) + suffix;
})
Run Code Online (Sandbox Code Playgroud)

但是我的脚本错了: var x=0;</script><div>..</div><script>var y=0;

我想要的是:var x=0;var y=0;

man*_*lds 20

使用如下的正则表达式:

<script>([\s\S]*?)</script>
Run Code Online (Sandbox Code Playgroud)

在Javascript中我们不能使. dotall所以我们使用[\ s\S]字符类来匹配任何字符,无论是空格还是空格,包括换行符.?用于非贪婪匹配,以便您不嵌套脚本标记.