Weiß jemand, wie man Sonderzeichen in HTML
in konvertiert?Javascript
?
Beispiel:
&
(kaufmännisches Und) wird&
."
(doppeltes Anführungszeichen) wird,"
wennENT_NOQUOTES
nicht gesetzt ist.'
(einfaches Anführungszeichen) wird'
nur, wennENT_QUOTES
gesetzt ist.<
(weniger als) wird<
.>
(größer als) wird>
.
javascript
Jin Yong
quelle
quelle
Antworten:
Sie benötigen eine Funktion, die so etwas wie
Berücksichtigen Sie jedoch Ihren Wunsch nach einem unterschiedlichen Umgang mit einfachen / doppelten Anführungszeichen.
quelle
/g
in einem regulären Ausdruck "global". Einfach ausgedrückt, werden alle Vorkommen der Zeichenfolge ersetzt. Ohne würde/g
nur das erste Match ersetzt werden.Meiner Meinung nach ist es am besten, die integrierte HTML-Escape-Funktion des Browsers zu verwenden, um viele Fälle zu behandeln. Erstellen Sie dazu einfach ein Element im DOM-Baum und setzen Sie
innerText
das Element auf Ihre Zeichenfolge. Rufen Sie danninnerHTML
das Element ab. Der Browser gibt eine HTML-codierte Zeichenfolge zurück.Testlauf:
Ausgabe:
Diese Methode zum Escapen von HTML wird auch von der Prototype JS-Bibliothek verwendet, unterscheidet sich jedoch von dem vereinfachten Beispiel, das ich gegeben habe.
Hinweis: Sie müssen Anführungszeichen (doppelt und einfach) weiterhin selbst umgehen. Sie können jede der von anderen hier beschriebenen Methoden verwenden.
quelle
delete el
hier ein Fehler ist. perfektionskills.com/understanding-delete<>&
, ist aber nicht so umfassend wie die Lösungen von Neotropic oder KooiInc.output = $('<div>').text(input).html()
Diese generische Funktion codiert jedes nicht alphabetische Zeichen in seinen HTML-Code (numerisch):
quelle
<>&
var iC = str.charCodeAt(i)
Von Mozilla ...
Die beste Lösung
Anwendungsbeispiel:
quelle
Erstellen Sie eine Funktion, die einen String verwendet
replace
quelle
Verwenden Sie diese Funktion für diejenigen, die einen ganzzahligen Zeichencode wie in einer Zeichenfolge dekodieren möchten
&#xxx;
:ES6
quelle
quelle
Wie
dragon
am saubersten erwähnt wurde , ist dies mitjQuery
:quelle
Ergebnis:
Im Testbereich:
Wenn Sie nur ein paar Zeichen in langem Code ändern ...
quelle
In einem
PRE
Tag - und in den meisten anderen HTML-Tags - wird durch einfachen Text für eine Batchdatei, die die Ausgabeumleitungszeichen (<und>) verwendet, der HTML-Code unterbrochen. Hier ist jedoch mein Tipp : Alles, was in einemTEXTAREA
Element enthalten ist, unterbricht den HTML-Code nicht HTML, hauptsächlich, weil wir uns in einem Steuerelement befinden, das vom Betriebssystem instanziiert und verwaltet wird, und daher sein Inhalt nicht von der HTML-Engine analysiert wird.Angenommen, ich möchte die Syntax meiner Batchdatei mit Javascript hervorheben. Ich füge den Code einfach in einen Textbereich ein, ohne mir Gedanken über die HTML-reservierten Zeichen zu machen, und lasse das Skript das verarbeiten
innerHTML
Eigenschaft des Textbereichs verarbeiten, der den Text auswertet, wobei die reservierten HTML-Zeichen durch die entsprechenden ISO-8859-1-Entitäten ersetzt werden.Browser entkommen Sonderzeichen automatisch, wenn Sie die
innerHTML
(undouterHTML
) -Eigenschaft eines Elements abrufen . Die Verwendung eines Textbereichs (und wer weiß, möglicherweise eine Eingabe vom Typ Text) erspart Ihnen nur die Konvertierung (manuell oder über Code).Ich benutze diesen Trick, um meinen Syntax-Textmarker zu testen. Wenn ich mit dem Erstellen und Testen fertig bin, verstecke ich den Textbereich einfach vor der Ansicht.
quelle
Wenn Sie Unterstützung für alle standardisierten Referenzen für benannte Zeichen , Unicode und mehrdeutige kaufmännische Und- Zeichen benötigen , ist die he- Bibliothek die einzige 100% zuverlässige Lösung, die mir bekannt ist!
Beispiel Verwendung
quelle
eine Problemumgehung:
quelle
Eine andere, die wir jetzt verwenden, funktioniert. Eines oben hat es stattdessen ein Skript aufgerufen und gibt den konvertierten Code zurück. Nur gut für kleine Textbereiche (dh nicht vollständig für Artikel / Blog usw.)
Für oben. Funktioniert mit den meisten Zeichen.
Ich erstelle eine Javascript-Datei, die viele Funktionen hat, einschließlich der oben genannten. http://www.neotropicsolutions.com/JSChars.zip
Alle benötigten Dateien sind enthalten. Ich habe jQuery 1.4.4 hinzugefügt. Einfach, weil ich Probleme in anderen Versionen gesehen habe, sie aber noch nicht ausprobiert habe.
quelle
Sie können Sonderzeichen einfach mit dem obigen Code in HTML konvertieren.
quelle
Hier ist eine gute Bibliothek, die ich in diesem Zusammenhang als sehr nützlich empfunden habe.
https://github.com/mathiasbynens/he
Laut dem Autor:
quelle
Hier sind einige Methoden, die ich ohne Jquery verwende:
Sie können jedes Zeichen in Ihrer Zeichenfolge codieren :
Oder zielen Sie einfach auf die wichtigsten sicheren Codierungszeichen ab, um die Sie sich Sorgen machen müssen (&, Inebreaks, <,>, "und '), wie:
quelle
quelle
Dies beantwortet Ihre Frage nicht direkt. Wenn Sie jedoch
innerHTML
Text in ein Element schreiben und dabei auf Codierungsprobleme stoßen, verwenden Sie einfachtextContent
:quelle
Wir können Javascript
DOMParser
für die Konvertierung von Sonderzeichen verwenden.quelle
Im Folgenden finden Sie die einfache Funktion zum Codieren von XML-Escapezeichen in JS
Encoder.htmlEncode (unsafeText);
quelle
Sie können das Problem beheben, indem Sie die Funktion .text () durch .html () ersetzen. Es funktioniert für mich.
quelle
Verwenden Sie dies zum Testen: http://www.w3schools.com/js/tryit.asp?filename=tryjs_text
quelle
Ja, aber wenn Sie die resultierende Zeichenfolge irgendwo einfügen müssen, ohne dass sie zurückkonvertiert wird, müssen Sie Folgendes tun:
quelle
Siehe JavaScript htmlentities http://phpjs.org/functions/htmlentities:425
quelle
Verwenden Sie die JavaScript-Funktion Escape () , mit der Sie Zeichenfolgen codieren können.
z.B,
quelle
quelle