我有一个像这样的字符串javascript消息:
var message = "merci d'ajouter";
我希望将此文本转换为此文本(解码):
var result = "merci d'ajouter";
我不想要任何替换方法,我想要一个通用的JavaScript解决方案,适用于编码的每个字符。提前致谢
答案 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 & Penguins');
=> "Zebras, Elephants & Penguins"