javascript - 正则表达式删除 Javascript 中的 <script> 及其内容

标签 javascript regex

我正在尝试从 html 正文中删除脚本及其内容,这就是我到目前为止所想到的

just_text = just_text.replace(/<\s*script[^>]*>(<\s*\/script[^>]*>|$)/ig, '');

它没有按预期工作,我仍然得到内容。

你能帮我吗?

谢谢

最佳答案

此类问题的答案始终相同:不要使用正则表达式。相反,如果需要,可以解析 HTML、修改 DOM 并将其序列化回 HTML。

示例:

var container = document.createElement('div');
container.innerHTML = just_text;

// find and remove `script` elements
var scripts = container.getElementsByTagName('script');
for (var i = scripts.length; i--; ) {
    scripts[i].parentNode.removeChild(scripts[i]);
}

just_text = container.innerHTML;

如果你想从页面本身删除script标签,基本上是一样的:

var scripts = document.body.getElementsByTagName('script');
for (var i = scripts.length; i--; ) {
    scripts[i].parentNode.removeChild(scripts[i]);
}

关于javascript - 正则表达式删除 Javascript 中的 &lt;script&gt; 及其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17231194/

相关文章:

regex - Outlook 2010 中的未送达报告和 VBA 脚本

regex - 如何在jmeter中参数化正则表达式

javascript - 带参数的 CakePHP Controller 函数不显示 javascript

javascript - 顺利打开div

php - 对象没有方法排序

javascript - 为什么这个圆圈内的球不能正常弹跳?

regex - 删除字符串中的所有内容,直到最后一个正斜杠

javascript - 如何修改这个正则表达式来检测和忽略太多字符?

javascript - 使用javascript旋转和取消旋转图像onClick

java - Java 上的正则表达式日期格式验证