javascript替换<与<产生$ lt;?

时间:2014-02-03 21:46:50

标签: javascript replace xmlhttprequest

我正在尝试使用javascript替换函数来转换html实体<进入&lt ;,像这样

text = text.replace(/&lt;/g, "<");
text = text.replace(/&gt;/g, ">");

初始文本看起来像这样:

&lt;img /&gt;

我试图让它看起来像这样:

<img />

然而,当我运行上面的代码时,我得到......这个:

$lt;img />

有趣的是,更换&gt;标志工作正常,但更换&lt;标志产生了一些完全出乎意料的事情(那里的那个$符号来自???)。

我还应该指出,如果我在&lt;之前添加一个空格。在替换函数中,像这样:

text = text.replace(/&lt;/g, "< ");

它产生了这个:

< img />

不幸的是,这不会像我想要的那样被解析为HTML ...

编辑:如果有帮助,我正在执行此操作的文本是XMLHttpRequest的responseText。

2 个答案:

答案 0 :(得分:4)

当你这样做时,你会覆盖替换。 尝试像链一样:

var text = '&lt;img /&gt;';
text = text.replace(/&lt;/g, "<").replace(/&gt;/g, ">");
// Output = <img />

或者您可以将替换分配给text变量:

var text = '&lt;img /&gt;';
text = text.replace(/&lt;/g, "<");
text = text.replace(/&gt;/g, ">");
// Output = <img />

答案 1 :(得分:0)

好吧,这是相当尴尬的,但事实证明$出现的原因是因为那是源代码中的内容......

我用&amp;&替换了$现在它工作正常。

非常感谢您的反馈意见,很抱歉浪费您的时间来处理这样一个简单的错误。