使用正则表达式从html字符串中删除脚本| js

问题描述 投票:0回答:2

我想使用正则表达式从html字符串中删除<script>标签。

我有以下有效的代码,但是当您放回脚本时不起作用:

function removeScriptsFromHtmlStr(html) {
  const regex = /<script(?:(?!\/\/)(?!\/\*)[^'"]|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\/\/.(?:\n)|\/\*(?:(?:.|\s))*?\*\/)*?<\/script>/;
  const result = html.replace(regex, '');
  return result;
}

例如:

通过功能运行此程序将正常工作

<script>alert(document.cookie);</script>

但是这不会

<script>alert(document.cookie);</script><script>alert(document.cookie);</script>

有人可以帮助我更新正则表达式以解决此问题吗?谢谢!

javascript regex
2个回答
0
投票

尝试此正则表达式

/<script.*?>.*?<\/script>/igm

https://stackoverflow.com/a/15816902/5812095


-1
投票

延迟加载应该可以解决问题<script>(.+?)<\/script>

© www.soinside.com 2019 - 2024. All rights reserved.