【发布时间】:2012-02-28 09:31:44
【问题描述】:
我有富文本内容的字符串
例如这样的东西
<p>Hello</p>
<br/>
<p> Christian </p>
<pre> Don't Know what to do </pre>
现在我不希望脚本出现在上面的内容中,如果存在的话就放弃它
所以如果我的内容看起来像这样
<p>Hello</p>
<br/>
<p> Christian </p>
<script type="text/javascript"> alert("Hello")</script>
<pre> Don't Know what to do </pre>
需要替换为
<p>Hello</p>
<br/>
<p> Christian </p>
<script type="text/javascript"> alert("Hello")</script>
<pre> Don't Know what to do </pre>
我目前已经为它开发了正则表达式
所以我的代码看起来像这样
if content.match(/<script(.+?)>/) {
content = content.replace(content.match(/<script(.+?)>/)[0],content.match(/<script(.+?)>/)[0].replace("<","<").replace(">",">"))
}
if content.match(/<\script\s*>/)
{
content = content.replace(content.match(/<\/script\s*>/)[0],content.match(/<\/script\s*>/)[0].replace("<","<").replace(">",">"))
}
所以结果内容将有脚本标签转义
谁能建议我更清洁的方法来实现这一目标?
【问题讨论】:
-
HTML 清理不是一个简单的问题:例如,请参阅 blog.stackoverflow.com/2008/06/safe-html-and-xss。在尝试编写自己的代码之前,我建议至少查看其他代码。
标签: javascript regex recursive-regex