HTML - Codierung ist einfach zu ersetzen &, ", ', <und >Zeichen mit ihrer Einheit Äquivalente. Reihenfolge ist wichtig, wenn Sie die &Zeichen nicht zuerst ersetzen , werden Sie einige der Entitäten doppelt codieren:
if (!String.prototype.encodeHTML) {
String.prototype.encodeHTML = function () {
return this.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
};
}
Als @Johan BW de Vries darauf hingewiesen, das mit den Tag - Namen haben Fragen werden, möchte ich klarstellen , dass ich die Annahme gemacht , dass dies für die benutzt wurde, um value nur
Umgekehrt, wenn Sie HTML-Entitäten 1 dekodieren möchten , stellen Sie sicher, dass Sie nach allem anderen dekodieren &, &damit Sie keine Entitäten doppelt dekodieren:
if (!String.prototype.decodeHTML) {
String.prototype.decodeHTML = function () {
return this.replace(/'/g, "'")
.replace(/"/g, '"')
.replace(/>/g, '>')
.replace(/</g, '<')
.replace(/&/g, '&');
};
}
1 nur die Grundlagen, nicht ©zu ©oder andere solche Dinge
Soweit Bibliotheken betroffen sind. Underscore.js (oder Lodash, wenn Sie es vorziehen) bietet eine _.escapeMethode zum Ausführen dieser Funktionalität.