61 Stimmen

Umwandlung von Zeichen in HTML-Entities mit einfachem JavaScript

Ich habe die folgenden:

var text = "Übergroße Äpfel mit Würmern";

Ich bin auf der Suche nach einer Javascript-Funktion, die den Text so umwandelt, dass jeder Sonderbuchstabe durch seine HTML-Entity-Sequenz wie folgt dargestellt wird:

var newText = magicFunction(text);
...
newText = "Übergroße Äpfel mit Würmern";

Die Funktion sollte nicht nur die Buchstaben dieses Beispiels entfallen sondern auch all diese.

Wie würden Sie das erreichen? Gibt es irgendeine bestehende Funktion da draußen? (Einfach, weil eine Lösung ohne Rahmen bevorzugt wird)

Übrigens: Ja, ich habe gesehen diese Frage aber das entspricht nicht meinem Bedürfnis.

0voto

Ronny Sherer Punkte 7772

Beste Lösung wird auf phpjs.org veröffentlicht Implementierung der PHP-Funktion htmlentities

Das Format ist htmlentities(string, quote_style, charset, double_encode) Die vollständige Dokumentation der identischen PHP-Funktion kann gelesen werden aquí

-1voto

Jason R. Coombs Punkte 38667

Ich habe eine der Antworten aus der referenzierten Frage angepasst, aber die Möglichkeit hinzugefügt, eine explizite Zuordnung für Zeichennamen zu definieren.

var char_names = {
    160:'nbsp',
    161:'iexcl',
    220:'Uuml',
    223:'szlig',
    196:'Auml',
    252:'uuml',
    };

function HTMLEncode(str){
     var aStr = str.split(''),
         i = aStr.length,
         aRet = [];

     while (--i >= 0) {
      var iC = aStr[i].charCodeAt();
       if (iC < 32 || (iC > 32 && iC < 65) || iC > 127 || (iC>90 && iC<97)) {
        if(char_names[iC]!=undefined) {
         aRet.push('&'+char_names[iC]+';');
        }
        else {
         aRet.push('&#'+iC+';');
        }
       } else {
        aRet.push(aStr[i]);
       }
    }
    return aRet.reverse().join('');
   }

var text = "Übergroße Äpfel mit Würmer";

alert(HTMLEncode(text));

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X