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;
})
但我得到了错误的脚本:var x=0;</script><div>..</div><script>var y=0;
我想要的是:var x=0;
和 var y=0;
?
的作用,谢谢。 - guilin 桂林?
表示 *? 匹配前面的标记 0 次或多次,并且在满足下一个标记之前尽可能少地匹配字符。因此,类似<script><script></script></script>
这样的内容将不会完全匹配。 - manojlds