Entfernen Sie leere Leerzeichen aus einer JavaScript-Zeichenfolge
Ich nehmen user-Eingaben (JS code) und ausführen (Prozess), Sie in Echtzeit zu zeigen Ausgabe.
Manchmal den code, hat diese zero width space, es ist wirklich seltsam. ich weiß nicht, wie die Benutzer-Eingabe ' Ing. Beispiel - "($".length === 3
Muss ich entnehmen zu können, dass der Charakter aus meinem code in JS. wie mache ich das ? oder vielleicht gibt es einen anderen Weg zu führen, der JS-code so, dass der browser nicht braucht, den zero-width-space-Zeichen berücksichtigt werden ?
Kommentar zu dem Problem
Wie haben Sie ableiten, dass es ein zero-width-Zeichen? Von der Länge allein? Die Länge eines nicht-BMP-Zeichen ist 2.
wenn ich an das Ende der Zeichenfolge ,und drücken Sie den Pfeil nach Links, an einer Stelle, spielt es keine bewegt sich nach Links schlagen, bis die Pfeil-Links-Taste zweimal. das ist, wie ich geschlossen.
Dann müssen Sie analysieren, die Zeichen, z.B. durch das schreiben aus den numerischen codes. Die Daten enthalten möglicherweise die Kombination von Marken, so dass zwei oder mehr Zeichen werden als eine Einheit behandelt, wenn in Bewegung nach Links.
InformationsquelleAutor der Frage user1437328 | 2012-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unicode hat den folgenden null-Breite Zeichen:
Entfernen Sie Sie aus einer Zeichenfolge in JavaScript, können Sie mit einem einfachen regulären Ausdruck:
Beachten Sie, dass es gibt viele weitere Symbole, die möglicherweise nicht sichtbar. Einige ASCII - steuerzeichen, zum Beispiel.
InformationsquelleAutor der Antwort Mathias Bynens
Hatte ich ein problem, einige unsichtbare Zeichen waren beschädigen meine JSON und verursacht Unexpected Token ILLEGAL Ausnahme, die war Absturz meiner Website.
Hier ist meine Lösung mit RegExp-Variablen:
Mehr über Javascript und zero width spaces finden Sie hier:
Zero Width Spaces
InformationsquelleAutor der Antwort Technotronic
200B ist die hexadezimal-der zero width space 8203. ersetzen Sie diese mit einem leeren string zu entfernen
InformationsquelleAutor der Antwort Tarek Salah uddin Mahmud
Filter jedes Zeichen zu entfernen 8203 char-code (zero-width space unicode-Nummer).
InformationsquelleAutor der Antwort Florian Margaine