使用正则表达式删除外部脚本标签

时间:2021-02-23 05:32:19

标签: javascript regex

我尝试使用正则表达式从字符串中删除外部脚本标记。

var data = "<p>Valid paragraph.</p><p>Another valid paragraph.</p><script>alert123</script><script type='text/javascript' src='123'>Dangerous scripting!!!</script><script type='text/javascript' src='123'/><p>Last final paragraph.</p>";

data.replace(/<script[^>]\(\src=\)*>(?:(?!<\/script>)[^])*<\/script>/g, "")

输出应该是

"<p>Valid paragraph.</p><p>Another valid paragraph.</p><script>alert123</script><p>Last final paragraph.</p>";

但它没有验证。 如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在这里我测试了一个正则表达式,我认为这就是你要找的:

(<script[^>].*<\/script>)|(<script[^>].*\/\s?>)

https://regexr.com/5n377 看看效果!

编辑

(<script[^>].*?<\/script>)|(<script[^>].*\/\s?>)
            ^^^ here Edited