Javascript Strings • Zeichenketten

Javascript: Strings

Ein String ist eine Zeichenkette (z.B. »Queen Mary 2«), die durch Hochkommas vom Code des Scripts getrennt ist. Strings sind der Dreh- und Angelpunkt der Entwicklung von Web-Anwendungen vom Kontaktformular bis zum Shopping Cart.

Auch wenn wir den Computer »Rechner« nennen: Programme wühlen sich laufend durch Zeichenketten.

18-12-15 SITEMAP

Strings von a bis z

Strings sind Folgen von Zeichen aller Art, die in einfache oder doppelte Hochkommas gefasst werden.

const simpleStr = "Hallo Welt!";  // Literale Notation
const simpleStr = "";             // erzeugt einen leeren String
const simpleStr = 'D’dorf ';      // String in einfachen Hochkommas

Im dritten Beispiel ist das Apostroph ein typografisches Apostroph-Zeichen ’ (’) und kein einfaches Hochkomma, sonst wäre da ein Fehler vorprogrammiert. Da betrifft Engländer und Franzosen aber eher (don’t, l’amour, I’m leaving).

Jedes Zeichen eines Strings wird durch ein 16-Bit-Unicodezeichen dargestellt – Strings dürfen Umlaute enthalten und die Interationalisierung von Anwendungen mit Javascript ist ein Klacks.

let simpleString = "äöüß";

Eingabefelder in Formularen werden als Strings gelesen, Pfadnamen und Nachrichten an den Benutzer sind klassische Anwendungen von Strings.

Hochkommas für Javascript-Strings

Quoting ist die Kunst, Strings in die richtigen Hochkommas zu setzen. Die Hochkommas müssen zusammenpassen: Wenn ein String mit einem einfachen Hochkomma beginnt, muss er mit einem einfachen Hochkomma geschlossen werden. Einfache Hochkommas dürfen doppelte Hochkommas enthalten und umgekehrt:

"Dies ist eine Zeichenkette"    // schöne doppelte Hochkommas
^                          ^
+--------------------------+

'@!zzz@@ zack!!! '
^                ^
+----------------+

'p { font-family: "Courier New" }'
^                 ^           ^  ^
+--------------------------------+

"Und noch'n 'String'"
^           ^      ^^
+-------------------+

"Wo ist die „Zeichenkette“?"     // Anführungszeichen 
^                          ^     // sind keine Hochkommas
+--------------------------+    


„Dies ist kein valider String“  // Falsch gequotet: 
                                // Anführungszeichen sind keine Hochkommas
                                
'Ohm'scher Widerstand'          // Falsch gequotet

'Kein "valider' String"         // Falsch gequotet

"drunter und drüber"            // Verschiedene Strings, da Javascript 
"Drunter und Drüber"            // zwischen Groß- und Kleinschreibung
                                // unterscheidet

"5"                             // Zahlen in Hochkommas: auch nur Strings
5                               // Ohne Hochkommas ist die Zahl eine Zahl 

""                              // Leere Hochkommas bilden einen null-String

Wenn weitere Sätze unterschiedlicher Hochkommas gebraucht werden, können sowohl einfache als auch doppelte Hochkommas mit einem vorangestellten Backslash notiert werden: \" oder \'. Zeichen mit einem vorangehenden Backslash werden als Escape-Sequenzen bezeichnet. Der Backslash teilt dem Interpreter mit, dass er das nächste Zeichen so dargestellen soll wie es ist.

elem.innerHTML = '<?php echo "<p class=\"simple\">Ausgabe"</p> ?>';
                 ^           ^         ^        ^        ^       ^
                 +-----------+---------+--------+--------+-------+

Länge von Strings: length

str.length gibt die Anzahl der Zeichen eines Strings zurück.

const simpleString = "Ich bin eine Zeichenkette";
let len = simpleString.length;                    // len hat jetzt den Wert 25

Theoretisch können Strings beliebig lang werden, nur ältere Browser, die heute kaum noch von Belang sind, limitieren Strings auf eine Länge von 255 Zeichen.

Strings suchen, vergleichen und ersetzen

string match
durchsucht einen String und gibt alle Treffer als Array zurück.
string indexOf
sucht einen String und gibt die erste Fundstelle zurück.
string search
sucht ebenfalls einen String und gibt die erste Fundstelle zurück, aber kann mit einem regulären Ausdruck eine komplexe Suche starten.
string replace
findet einen String und ersetzt ihn durch eine neue Zeichenkette.

String löschen

Die einfachste Methode, einen String zu löschen, ist das Zuweisen eines leeren Strings.

let simpleString = "Hallo Welt"; 
…
simpleString = "";

Escapezeichen

Escapezeichen werden zur Darstellung von Zeichen benutzt, die in regulären Ausdrücken normalerweise eine besondere Bedeutung haben und zur Darstellung von Zeichen, die nicht auf der Tastatur eingegeben werden können und im Dokument nicht direkt sichtbar sind, sondern nur durch ihre Wirkung in Erscheinung treten.

\f
Formfeed (Zeilenvorschub)
\n
Newline (Neue Zeile)
\n
Newline (Neue Zeile)
\r
Carriage return (Wagen-Rücklauf ohne Zeilenvorschub)
\t
Tabulator
\v
Vertikaler Tabulator

Objekt oder String?

Für Einsteiger ist das String-Objekt kein intuitiver Datentyp und oft fällt es schwer, den Typ einer Variable festzustellen – handelt es sich bei einem Wert um ein Objekt oder um einen String? Hier hilft der typeof-Operator.

let was1 = window.location;                // 
let was2 = window.location.href;           // 

let type1 = typeof(window.location);       // 
let type1 = typeof(window.location.href);  // 

Sowohl der Aufruf von window.location als auch der Aufruf von window.location.href erzielen dieselbe Ausgaben – aber window.location gibt ein String-Objekt zurück, während window.location.href einen String zurückgibt.