Javascript 使用正则表达式从html字符串中删除脚本
我想使用正则表达式从html字符串中删除Javascript 使用正则表达式从html字符串中删除脚本,javascript,regex,Javascript,Regex,我想使用正则表达式从html字符串中删除标记 我有以下代码可以工作,但在背靠背脚本中无法工作: function removeScriptsFromHtmlStr(html) { const regex = /<script(?:(?!\/\/)(?!\/\*)[^'"]|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\/\/.(?:\n)|\/\*(?:(?:.|\s))*?\*\/)*?<\/script>/; const result =
标记
我有以下代码可以工作,但在背靠背脚本中无法工作:
function removeScriptsFromHtmlStr(html) {
const regex = /<script(?:(?!\/\/)(?!\/\*)[^'"]|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\/\/.(?:\n)|\/\*(?:(?:.|\s))*?\*\/)*?<\/script>/;
const result = html.replace(regex, '');
return result;
}
函数removeScriptsFromHtmlStr(html){
const regex=/延迟加载应该可以做到这一点
(.+?)
试试这个正则表达式
/<script.*?>.*?<\/script>/igm
/.*?/igm
由于JavaScript不支持单线/s
标志,因此需要对
进行变通:
/<script.*?>[\s\S]*?<\/script>/gi
/[\s\s]*?/gi
添加一个g
标志(代表全局)。因此,/your regex/g
,否则只会替换第一个匹配项。这是否回答了您的问题?如果出于安全原因这样做,那么不要使用RegExp,这太容易欺骗您可以创建的任何RegExp。请创建DocumentFragment,附加HTML,并从解析的片段中删除脚本元素。是否不要用正则表达式解析HTML。仅供参考,有很多方法可以打破这个正则表达式。