Javascript撇号解码

时间:2016-06-22 15:06:11

标签: javascript string decode html-entities

我有一个像这样的字符串javascript消息:

var message = "merci d'ajouter";

我希望将此文本转换为此文本(解码):

var result = "merci d'ajouter";

我不想要任何替换方法,我想要一个通用的JavaScript解决方案,适用于编码的每个字符。提前致谢

1 个答案:

答案 0 :(得分:3)

这实际上可以在原生JavaScript中使用

请注意,IE8及更早版本不支持textContent,因此我们必须使用innerText

function decode(string) {
    var div = document.createElement("div");
    div.innerHTML = string; 
    return typeof div.textContent !== 'undefined' ? div.textContent : div.innerText;
}

var testString = document.getElementById("test-string");
var decodeButton = document.getElementById("decode-button");
var decodedString = document.getElementById("decoded-string");
var encodedString = "merci d'ajouter";
      
decodeButton.addEventListener("click", function() {
  decodedString.innerHTML = decode(encodedString); 
});
<h1>Decode this html</h1>
<p id="test-string"></p>
<input type=button id="decode-button" value="Decode HTML"/>
<p id="decoded-string"></p>

更简单的解决方案是使用Underscore.js库。这是一个很棒的库,为您提供了许多额外的功能。

下划线提供_unescape(string)功能

  

与逃避相反,用未转义的对手替换&amp;,&lt;,&gt;,“,”和'。

_.unescape('Zebras, Elephants &amp; Penguins');
=> "Zebras, Elephants & Penguins"