2016-06-22 17 views
1

Ich habe eine Zeichenfolge Javascript Nachricht wie diese:Javascript Apostrophe Dekodierung

var message = "merci d'ajouter"; 

Und ich möchte diesen Text in diese ein (Dekodierung) umgewandelt werden:

var result = "merci d'ajouter"; 

Ich will nicht jede Ersatzmethode, ich möchte eine allgemeine Javascript-Lösung, die für jeden kodierten Charakter arbeitet. Vielen Dank im Voraus

+4

Mögliche Duplikat [HTML Entity Decode] (http://stackoverflow.com/questions/5796718/html-entity-decode) –

+2

Es scheint mir, dass jede "allgemeine JavaScript" Lösung Ersatz bedeuten würde . Das ist wie nach einem Hemd fragen, aber keine Nähte verwenden. Auf der anderen Seite kann die Dekodierung durch den Browser gehandhabt werden, wenn der Zeichentyp in der Kopfzeile eingestellt wird. – durbnpoisn

Antwort

3

Dies tatsächlich möglich in nativer JavaScript ist

Heep daran, dass IE8 und früher nicht textContent unterstützen, so müssen wir innerText für sie verwenden.

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>

Eine einfachere Lösung, um die Underscore.js Bibliothek zu verwenden wäre. Dies ist eine fantastische Bibliothek, die Ihnen eine Menge zusätzlicher Funktionalität bietet.

Unders bietet eine _unescape(string) Funktion

Das Gegenteil von Flucht, ersetzt &, <, >, ", ` und ' mit ihren unescaped Pendants.

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

Ich nehme die erste Lösung, da ich keine externen Libraires verwenden darf :) –