Matthias Bynens hat dafür eine Bibliothek: https://github.com/mathiasbynens/he
Beispiel:
console.log(
he.decode("Jörg & Jürgen rocked to & fro ")
);
// Logs "Jörg & Jürgen rocked to & fro"
Ich schlage vor, es Hacks vorzuziehen, bei denen der HTML-Inhalt eines Elements festgelegt und dann dessen Textinhalt zurückgelesen wird. Solche Ansätze können funktionieren, sind jedoch täuschend gefährlich und bieten XSS-Möglichkeiten, wenn sie für nicht vertrauenswürdige Benutzereingaben verwendet werden.
Wenn Sie es wirklich nicht ertragen können, in eine Bibliothek zu laden, können Sie den textarea
in dieser Antwort beschriebenen Hack auf eine nahezu doppelte Frage anwenden, die im Gegensatz zu verschiedenen ähnlichen Ansätzen, die vorgeschlagen wurden, keine mir bekannten Sicherheitslücken aufweist:
function decodeEntities(encodedString) {
var textArea = document.createElement('textarea');
textArea.innerHTML = encodedString;
return textArea.value;
}
console.log(decodeEntities('1 & 2')); // '1 & 2'
Beachten Sie jedoch die Sicherheitsprobleme, die ähnliche Ansätze betreffen, die ich in der verknüpften Antwort aufführe! Dieser Ansatz ist ein Hack, und zukünftige Änderungen am zulässigen Inhalt eines textarea
(oder an Fehlern in bestimmten Browsern) können dazu führen, dass Code eines Tages plötzlich ein XSS-Loch aufweist.
escape
d- oder URI-codierte Zeichenfolgen , funktionieren diese Funktionen nicht.𝕫
. Dies ist ein Problem mit einer sich entwickelnden Spezifikation. Als solches sollten Sie ein Werkzeug auswählen, das tatsächlich gewartet wird, um es zu lösen.