【问题标题】:javascript string replace &lt; into <javascript字符串替换<到<
【发布时间】:2011-03-14 17:19:53
【问题描述】:

大家好,我基本上是使用 jquery 将内容输出到这样的 div 中:

var text = $("#edit").val();
$("#output").text(text);

但我想转“<”和“>”变成“”。

text.replace(/&amp;lt;/,"&lt;"); 似乎对我不起作用...

有什么想法吗?非常感谢

【问题讨论】:

  • 你能用 .html(text) 代替 .text(text) 吗?
  • 您确定问题不在其他地方吗?如果我输入 chrome 控制台 "abcde&amp;lt;hey&amp;gt;dfdfgf".replace(/&amp;lt;/g,"&lt;").replace(/&amp;gt;/g,"&gt;") 我会得到正确答案...
  • @Peter: 不怕,我想要 "
  • 大部分回答在这里:stackoverflow.com/questions/513112/…
  • 我知道。 HTML 解释 <和>作为文本。

标签: javascript jquery replace


【解决方案1】:

您可以在原型中使用类似 unescapeHTML() 的函数...

改编自prototype js来源

function unescapeHTML(escapedHTML) {
  return escapedHTML.replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
}

【讨论】:

    【解决方案2】:

    简单。

    var needToConvert = 'But I want to turn "&lt;" and "&gt;" into "<" and ">".';
    
    var convert = function(convert){
        return $("<span />", { html: convert }).text();
        //return document.createElement("span").innerText;
    };
    
    alert(convert(needToConvert));
    

    【讨论】:

    • @mdlars 你能说得更具体点吗?我刚刚试了一下,它仍然有效。
    【解决方案3】:

    你需要使用 .html() 因为 text() 会转换所有的html标签

    $("#output").html(text);
    

    【讨论】:

      【解决方案4】:

      将其分配给变量:

      var text = $("#edit").val();
      text = text.replace("&lt;","<");
      

      这样就可以了

      【讨论】:

      • 这只会替换第一次出现,其他的被忽略
      猜你喜欢
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多