Leerraum und unsichtbare Zeichen testen
Neben dem normalen Leerzeichen gibt es geschützte Leerzeichen, breite Abstände, Tabulatoren, Zeilentrenner und unsichtbare Zeichen wie den Zero Width Space, die in kopiertem Text oft unbemerkt stecken. Die Beispiele zeigen diese Fälle, auch einen Wert nur aus einem Tabulator und einen mit Leerzeichen am Ende. Damit lassen sich trim(), split, Validierung und Vergleiche der eigenen Anwendung prüfen.
17 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf.
Zero Width Space (U+200B) mitten im Wort
Testwort
Unsichtbar, aber zwei Wörter für manche Tokenizer; kopierte Texte tragen sie oft unbemerkt. UTF-16: 9, Codepoints: 9, UTF-8: 11 Bytes. Testzeichenfolge für eigene Systeme.
Nur ein Zero Width Space (wirkt leer)
Sieht leer aus, ist aber nicht leer; besteht trim() oft nicht (U+200B gilt in JavaScript nicht als Leerraum). UTF-16: 1, Codepoints: 1, UTF-8: 3 Bytes. Testzeichenfolge für eigene Systeme.
ZWNJ (U+200C) und ZWJ (U+200D) im Text
abc
Beide Steuerzeichen sind unsichtbar; ZWNJ trennt Verbindungen, ZWJ erzwingt sie. UTF-16: 5, Codepoints: 5, UTF-8: 9 Bytes. Testzeichenfolge für eigene Systeme.
Byte Order Mark (U+FEFF) am Textanfang
Beispiel
Als Zeichen U+FEFF; in UTF-8 die Bytes EF BB BF. Bricht Parser, die den Anfang strikt erwarten. UTF-16: 9, Codepoints: 9, UTF-8: 11 Bytes. Testzeichenfolge für eigene Systeme.
Geschütztes Leerzeichen (U+00A0) im Namen
Max Mustermann
Sieht wie ein Leerzeichen aus; split(" ") und Regex \s unterscheiden sich je nach Sprache. UTF-16: 14, Codepoints: 14, UTF-8: 15 Bytes. Testzeichenfolge für eigene Systeme.
Schmales geschütztes Leerzeichen (U+202F)
1 000 000
Tausendertrennzeichen in französischer CLDR-Formatierung; Parser erwarten oft U+0020. UTF-16: 9, Codepoints: 9, UTF-8: 13 Bytes. Testzeichenfolge für eigene Systeme.
Geviertspatium (U+2003)
A B
Breiter Leerraum; trim() entfernt ihn, ein Vergleich mit " " nicht. UTF-16: 3, Codepoints: 3, UTF-8: 5 Bytes. Testzeichenfolge für eigene Systeme.
Weicher Trennstrich (U+00AD) im Wort
Donaudampfschiff
Meist unsichtbar; erscheint nur beim Zeilenumbruch. Suche nach „Donaudampfschiff“ findet nichts. UTF-16: 18, Codepoints: 18, UTF-8: 20 Bytes. Testzeichenfolge für eigene Systeme.
Zeilentrenner U+2028 und Absatztrenner U+2029
Zeile1 Zeile2 Zeile3
Unicode-Zeilenumbrüche, die ältere JavaScript-Strings als Literal nicht erlaubten. UTF-16: 20, Codepoints: 20, UTF-8: 24 Bytes. Testzeichenfolge für eigene Systeme.
Nur Leerzeichen (fünf)
Pflichtfeld-Test: nicht leer, nach trim() aber leer. UTF-16: 5, Codepoints: 5, UTF-8: 5 Bytes. Testzeichenfolge für eigene Systeme.
Nur ein Tabulator
Whitespace-only mit U+0009. UTF-16: 1, Codepoints: 1, UTF-8: 1 Bytes. Testzeichenfolge für eigene Systeme.
Führende und nachfolgende Leerzeichen
Max Mustermann
Je drei Leerzeichen; testet trim() beim Speichern, Vergleichen und Login. UTF-16: 20, Codepoints: 20, UTF-8: 20 Bytes. Testzeichenfolge für eigene Systeme.
Wert mit einem Leerzeichen am Ende
benutzername
Ein Leerzeichen am Ende; viele Datenbanken (PAD SPACE) vergleichen es als gleich. UTF-16: 13, Codepoints: 13, UTF-8: 13 Bytes. Testzeichenfolge für eigene Systeme.
Mehrfache Leerzeichen im Text
Max Mustermann GmbH
HTML faltet sie in der Anzeige, Datenbank und Export nicht. UTF-16: 26, Codepoints: 26, UTF-8: 26 Bytes. Testzeichenfolge für eigene Systeme.
Tabulatoren zwischen Wörtern
Spalte1 Spalte2 Spalte3
Echte Tabs (U+0009); bricht TSV-/CSV-Importe bei freien Textfeldern. UTF-16: 23, Codepoints: 23, UTF-8: 23 Bytes. Testzeichenfolge für eigene Systeme.
Gemischte Zeilenumbrüche LF, CRLF, CR
A B C …
Alle drei Varianten in einem Text; zeigt, wie viele Zeilen ein Parser zählt. UTF-16: 8, Codepoints: 8, UTF-8: 8 Bytes. Testzeichenfolge für eigene Systeme.
Text mit leeren Zeilen und Leerzeile am Ende
Absatz 1 …
Mehrere aufeinanderfolgende Umbrüche und ein abschließender. UTF-16: 21, Codepoints: 21, UTF-8: 21 Bytes. Testzeichenfolge für eigene Systeme.