W3docs

JavaScript Strings

In JavaScript werden Strings zum Speichern und Bearbeiten von Text verwendet. Hier lernen Sie, Strings zu erstellen, zu nutzen und zu vergleichen.

In JavaScript werden Strings zum Speichern und Bearbeiten von Text verwendet. Anders als in manchen anderen Sprachen gibt es in JavaScript keinen separaten Typ für ein einzelnes Zeichen — ein Zeichen ist einfach ein string der Länge 1. Das interne Format jedes Strings ist immer UTF-16, weshalb jedes Zeichen einem numerischen Code entspricht (mehr dazu weiter unten).

Ein string repräsentiert null oder mehr Zeichen, die in Anführungszeichen geschrieben werden. Strings gehören zu JavaScripts primitiven Datentypen, bieten aber viele nützliche Methoden — unter Methoden von Primitiven erfahren Sie, warum ein Primitiv überhaupt Methoden haben kann.

Auf dieser Seite erfahren Sie, wie Sie Strings erstellen (mit einfachen Anführungszeichen, doppelten Anführungszeichen und Backticks), Sonderzeichen verwenden, die Länge eines Strings auslesen, einzelne Zeichen abrufen, Teilstrings extrahieren, die Schreibweise ändern, innerhalb eines Strings suchen und Strings korrekt vergleichen.

Beliebte String-Funktionen

FunktionBeschreibung
charAt(index)Gibt das Zeichen am angegebenen Index zurück.
charCodeAt(index)Gibt den Unicode-Wert des Zeichens am angegebenen Index zurück.
concat(...strings)Verkettet die string-Argumente mit dem aufrufenden string und gibt einen neuen string zurück.
includes(searchString, position)Prüft, ob der aufrufende string den searchString enthält.
indexOf(searchValue, fromIndex)Gibt den Index des ersten Vorkommens von searchValue im string zurück, wobei die Suche bei fromIndex beginnt. Gibt -1 zurück, wenn der Wert nicht gefunden wird.
lastIndexOf(searchValue, fromIndex)Gibt den Index des letzten Vorkommens von searchValue im aufrufenden string zurück, wobei rückwärts ab fromIndex gesucht wird. Gibt -1 zurück, wenn der Wert nicht gefunden wird.
match(regexp)Ruft die Übereinstimmungen beim Abgleich eines Strings mit einem regulären Ausdruck ab.
matchAll(regexp)Gibt einen Iterator aller Ergebnisse zurück, die beim Abgleich eines Strings mit einem regulären Ausdruck gefunden werden, einschließlich Erfassungsgruppen.
repeat(count)Gibt einen neuen string zurück, der aus dem aufrufenden string besteht, der count-mal wiederholt wird.
replace(searchFor, replaceWith)Ersetzt die erste Übereinstimmung eines Teilstrings oder Musters durch einen Ersatzstring.
replaceAll(searchFor, replaceWith)Ersetzt alle Übereinstimmungen eines Teilstrings oder Musters durch einen Ersatzstring.
search(regexp)Durchsucht den string nach einer Übereinstimmung mit einem regulären Ausdruck und gibt den Index der Übereinstimmung zurück.
slice(startIndex, endIndex)Extrahiert einen Abschnitt eines Strings und gibt ihn als neuen string zurück, ohne den ursprünglichen string zu verändern.
split(separator, limit)Teilt einen string in eine geordnete Liste von Teilstrings auf, legt diese Teilstrings in einem array ab und gibt das array zurück. Die Aufteilung erfolgt durch Suche nach einem Muster, das als erster Parameter im Methodenaufruf angegeben wird.
startsWith(searchString, position)Prüft, ob der aufrufende string mit den Zeichen von searchString beginnt.
substring(startIndex, endIndex)Gibt den Teil des Strings zwischen dem Start- und Endindex zurück, oder bis zum Ende des Strings.
toLowerCase()Gibt den aufrufenden string in Kleinbuchstaben zurück.
toUpperCase()Gibt den aufrufenden string in Großbuchstaben zurück.
trim()Entfernt Leerzeichen an beiden Enden des Strings.
trimStart() oder trimLeft()Entfernt Leerzeichen am Anfang des Strings.
trimEnd() oder trimRight()Entfernt Leerzeichen am Ende des Strings.
valueOf()Gibt den primitiven Wert eines String-Objekts zurück.

Über Anführungszeichen

JavaScript bietet Ihnen drei Möglichkeiten, einen string zu kennzeichnen: einfache Anführungszeichen, doppelte Anführungszeichen und Backticks:

let single = 'single-quoted';
let double = "double-quoted";
let backticks = `backticks`;

Einfache und doppelte Anführungszeichen verhalten sich identisch — wählen Sie einen Stil und bleiben Sie dabei. Backticks sind anders: Sie unterstützen Template-Literale und ermöglichen es, jeden Ausdruck direkt in den string einzubetten, indem er in ${…} eingeschlossen wird:

javascript— editable

Der Ausdruck innerhalb von ${…} kann beliebig sein — eine Variable, eine Berechnung oder ein Funktionsaufruf:

javascript— editable

Ein weiterer wesentlicher Vorteil von Backticks ist, dass sie einen string über mehrere Zeilen erstrecken lassen:

javascript— editable

Einfache und doppelte Anführungszeichen können nicht allein mehrere Zeilen umspannen. Ein roher Zeilenumbruch innerhalb davon ist ein Syntaxfehler:

let guestList = "Guests: // SyntaxError: Invalid or unexpected token
* John ";

Einfache und doppelte Anführungszeichen sind älter als Backticks, weshalb Backticks die leistungsfähigere, moderne Wahl sind.

Sie können auch eine „Template-Funktion" (ein Tagged Template) vor dem ersten Backtick platzieren:

func`string`;

Die Funktion func wird automatisch aufgerufen und erhält die literalen String-Teile zusammen mit den eingebetteten Ausdrücken, sodass sie diese verarbeiten kann. So implementieren Bibliotheken benutzerdefinierte Vorlagen, im alltäglichen Code wird dies jedoch selten benötigt.

Sonderzeichen

Sie können mit Hilfe von \n (dem Zeilenumbruchzeichen) eine mehrzeilige Ausgabe aus einfach oder doppelt angeführten Strings erzeugen:

javascript— editable

Es gibt noch andere, weniger gebräuchliche Sonderzeichen.

Einige davon finden Sie in der folgenden Liste:

  • \', \" diese Sonderzeichen werden für Anführungszeichen verwendet
  • \r - Wagenrücklauf. Dieses Zeichen wird heutzutage allein kaum noch verwendet. Die Kombination zweier Zeichen \r\n wird zur Darstellung eines Zeilenumbruchs in Windows-Textdateien verwendet.
  • \\ - Backslash
  • \t - Tabulator
  • \xXX - Unicode-Zeichen mit einem bestimmten hexadezimalen Unicode XX
  • \uXXXX - dies ist ein Unicode-Symbol mit dem Hex-Code XXXX in UTF-16-Kodierung. Es muss genau 4 Stellen haben.

Hier sind Beispiele mit Unicode-Escapes:

javascript— editable

Jedes Sonderzeichen beginnt mit einem Backslash, weshalb der Backslash auch als Escape-Zeichen bezeichnet wird. Sie können ihn verwenden, um ein passendes Anführungszeichen in einem string zu platzieren:

javascript— editable

Der Backslash dient nur dazu, JavaScript mitzuteilen, wie der Quellcode gelesen werden soll — er verschwindet, sobald der string erstellt wird, und wird daher nicht im Speicher abgelegt. Wenn Sie tatsächlich einen Backslash im string benötigen, verdoppeln Sie ihn:

javascript— editable

Die String-Länge

Die Eigenschaft length gibt Ihnen die Anzahl der Zeichen in einem string zurück:

javascript— editable

Beachten Sie, dass \n ein einzelnes Sonderzeichen ist, weshalb die Länge 7 beträgt (W3Docs plus ein Zeilenumbruch), nicht 8.

Ein häufiger Fehler ist der Aufruf von str.length() anstelle des Lesens von str.length. length ist eine Eigenschaft, keine Methode — das Hinzufügen von () wirft einen „not a function"-Fehler.

Zugriff auf Zeichen

Eckige Klammern [pos] sind der übliche Weg, um das Zeichen an einer bestimmten Position abzurufen. Sie können auch die Methode str.charAt(pos) aufrufen. Positionen sind nullbasiert, das erste Zeichen befindet sich also bei Index 0:

javascript— editable

Der einzige Unterschied: Wenn an der Position kein Zeichen vorhanden ist, gibt str[pos] undefined zurück, während str.charAt(pos) einen leeren string '' zurückgibt. Moderner Code bevorzugt generell eckige Klammern; charAt wird heute selten verwendet.

Strings sind unveränderlich

Strings in JavaScript sind unveränderlich — Sie können ein Zeichen nicht an seiner Stelle ändern. Die folgende Zuweisung schlägt still fehl (im strikten Modus wird eine Ausnahme ausgelöst), sodass das ursprüngliche Zeichen unverändert bleibt:

javascript— editable

Erstellen Sie stattdessen einen völlig neuen string und weisen Sie ihn der Variablen zu:

javascript— editable

Groß- und Kleinschreibung

Zwei Methoden ändern die Schreibweise des gesamten Strings — toUpperCase() und toLowerCase():

javascript— editable

Um nur ein einzelnes Zeichen in Kleinbuchstaben umzuwandeln, greifen Sie zuerst auf das Zeichen im string zu und rufen Sie dann die Methode auf diesem Zeichen auf:

javascript— editable

Suche nach einem Teilstring

Es gibt verschiedene Möglichkeiten, nach einem Teilstring innerhalb eines Strings zu suchen.

str.indexOf

str.indexOf(substr, pos) sucht nach substr innerhalb von str, optional ab Position pos. Es gibt den Index der ersten Übereinstimmung zurück, oder -1, wenn keine Übereinstimmung gefunden wird:

javascript— editable

str.lastIndexOf

str.lastIndexOf(substr, pos) funktioniert wie indexOf, durchsucht den string jedoch vom Ende bis zum Anfang und gibt den Index der letzten Übereinstimmung zurück.

Ein häufiger Fallstrick: Verwenden Sie indexOf nicht direkt in einem if-Test. Da eine Übereinstimmung an Position 0 falsy ist, sieht dies korrekt aus, ist es aber nicht:

javascript— editable

Vergleichen Sie stattdessen immer mit -1:

javascript— editable

includes, startsWith, endsWith

Das modernere str.includes(substr, pos) gibt true oder false zurück, je nachdem, ob str den substr enthält. Verwenden Sie es, wenn Sie nur wissen müssen, ob eine Übereinstimmung existiert, nicht wo:

javascript— editable

Das optionale zweite Argument ist die Position, ab der die Suche beginnt:

javascript— editable

str.startsWith(substr) und str.endsWith(substr) sind eng verwandt — sie prüfen den Anfang bzw. das Ende des Strings:

javascript— editable

Extrahieren eines Teilstrings

JavaScript verfügt über drei Methoden zum Extrahieren eines Teilstrings: slice, substring und substr. In modernem Code ist slice die empfohlene Methode — sie ist am flexibelsten, und substr gilt als veraltet.

str.slice(start, end)

slice gibt den Teil des Strings von start bis (aber nicht einschließlich) end zurück:

javascript— editable

Wird das zweite Argument weggelassen, läuft slice bis zum Ende des Strings:

javascript— editable

Sie können auch negative Werte verwenden, die vom Ende zählen:

javascript— editable

str.substring(start, end)

substring gibt den Teil des Strings zwischen start und end zurück. Es ähnelt slice, mit einem wesentlichen Unterschied: Wenn start größer als end ist, vertauscht substring die beiden Argumente, während slice einen leeren string zurückgibt. Außerdem behandelt es negative Argumente als 0:

javascript— editable

str.substr(start, length)

substr gibt den Teil des Strings ab start mit einer bestimmten length zurück. Anders als die anderen Methoden ist das zweite Argument eine Länge, kein Endindex. Diese Methode ist veraltet — bevorzugen Sie slice in neuem Code.

javascript— editable

Ein negativer start-Wert zählt vom Ende:

javascript— editable

Vergleich von Strings

Die Operatoren <, >, <= und >= vergleichen Strings zeichenweise anhand des Unicode-Codes jedes Zeichens (siehe Vergleichsoperatoren für die allgemeinen Regeln). Zwei Konsequenzen überraschen Einsteiger häufig:

  1. Ein Kleinbuchstabe ist „größer als" ein Großbuchstabe, da Kleinbuchstaben höhere Codes haben:
javascript— editable
  1. Buchstaben mit diakritischen Zeichen sortieren sich „außer der Reihe" — sie liegen außerhalb des grundlegenden A–Z-Bereichs und werden daher als größer verglichen:
javascript— editable

Aus diesem Grund eignen sich die Vergleichsoperatoren gut zum Sortieren streng nach Code, aber nicht für eine benutzerfreundliche alphabetische Reihenfolge. Für einen gebietsschemaabhängigen Vergleich verwenden Sie str.localeCompare(other), das eine negative Zahl, 0 oder eine positive Zahl zurückgibt:

javascript— editable

Zeichen und ihre Codes

Da Strings UTF-16 verwenden, hat jedes Zeichen einen numerischen Code. str.codePointAt(pos) gibt den Code des Zeichens an Position pos zurück:

javascript— editable

String.fromCodePoint(code) macht das Gegenteil — es erstellt ein Zeichen aus einem numerischen Code:

javascript— editable

Sie können auch ein Zeichen anhand seines Codes in einem string-Literal einfügen, indem Sie \u gefolgt vom Hex-Code verwenden:

javascript— editable

Als vollständigeres Beispiel hier ein string, der aus den Zeichen mit den Codes 65..220 besteht:

javascript— editable

Die Großbuchstaben kommen zuerst, dann einige Sonderzeichen, und die Ausgabe endet etwa bei Ö.

Verwandte Themen

Übungen

Übung
Was sind einige Eigenschaften oder Funktionen von Strings in JavaScript, wie im Artikel beschrieben?
Was sind einige Eigenschaften oder Funktionen von Strings in JavaScript, wie im Artikel beschrieben?
Was this page helpful?