首页 文章

javascript替换&lt;与<produce $ lt;?

提问于
浏览
2

我正在尝试使用javascript替换函数将html实体<转换为<,就像这样

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

初始文本看起来像这样:

&lt;img /&gt;

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

<img />

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

$lt;img />

有趣的是,替换>符号工作正常,但<符号的替换产生了一些完全出乎意料的事情(那里的那个$符号来自???) .

我还应该指出,如果我在替换函数中的<之前添加一个空格,就像这样:

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

它产生了这个:

< img />

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

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

2 回答

  • 3

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

    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 />
    
  • 0

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

    我用&替换了$,现在它工作正常 .

    无论如何,谢谢你的反馈意见,很抱歉浪费你的时间来处理这样一个简单的错误 .

相关问题