Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 43

3.3.3Mit Strings arbeiten

Оглавление

Zu den spracheigenen Features von JavaScript gehört die Fähigkeit, Strings zu verketten. Wenn Sie den +-Operator auf Zahlen anwenden, werden diese addiert. Verwenden Sie ihn dagegen mit Strings als Operanden, verbindet er diese, indem er den zweiten String an den ersten anhängt, zum Beispiel:

let msg = "Hello, " + "world"; // Erzeugt den String "Hello, world".

let greeting = "Welcome to my blog," + " " + name;

Strings können mit den normalen Gleichheits- bzw. Ungleichheitsoperatoren === und !== verglichen werden: Zwei Zeichenketten sind nur dann gleich, wenn sie aus genau der gleichen Sequenz von 16-Bit-Werten bestehen. Sie können auch mit den Operatoren <, <=, > und >= verglichen werden. Der String-Vergleich erfolgt dabei einfach durch den Vergleich der 16-Bit-Werte. (Für ein robusteres Vergleichen und Sortieren von Zeichenketten unter Berücksichtigung von Gebietsschemata lesen Sie mehr in 11.7.3.)

Die Länge einer Zeichenkette – also die Anzahl von 16-Bit-Werten, die sie enthält – ermitteln Sie mit der length-Eigenschaft des Strings:

s.length

Zusätzlich zu dieser length-Eigenschaft bietet JavaScript eine reichhaltige API für das Arbeiten mit Strings:

let s = "Hello, world"; // Definiert einen Text.

// Teile eines Strings erhalten:

s.substring(1,4) // => "ell": Das 2., 3. und 4. Zeichen.

s.slice(1,4) // => "ell": Das Gleiche.

s.slice(-3) // => "rld": Die letzten drei Zeichen.

s.split(", ") // => "[Hello", "world"]: Auftrennung anhand des

// angegebenen Trennstrings.

// Durchsuchen eines Strings:

s.indexOf("l") // => 2: Position des ersten Vorkommens des

// Buchstabens "l".

s.indexOf("l", 3) // => 3: Position des ersten "l" auf oder nach

// Indexposition 3.

s.indexOf("zz") // => -1: s enthält nicht die Teilzeichenfolge "zz".

s.lastIndexOf("l") // => 10: Position des letzten Vorkommens des

// Buchstabens "l".

// Boolesche Suchfunktionen in ES6 und höher:

s.startsWith("Hell") // => true: Der String beginnt mit diesen Zeichen.

s.endsWith("!") // => false: s endet nicht mit einem "!".

s.includes("or") // => true: s enthält die Teilzeichenfolge "or".

// Modifizierte Versionen eines Strings erzeugen:

s.replace("llo", "ya") // => "Heya, world"

s.toLowerCase() // => "hello, world"

s.toUpperCase() // => "HELLO, WORLD"

s.normalize() // Unicode-NFC-Normalisierung: ES6.

s.normalize("NFD") // NFD-Normalisierung. Auch "NFKC", "NFKD".

// Überprüfung einzelner (16-Bit-)Zeichen eines Strings:

s.charAt(0) // => "H": Das erste Zeichen.

s.charAt(s.length-1) // => "d": Das letzte Zeichen.

s.charCodeAt(0) // => 72: 16-Bit-Zahl an der angegebenen Position.

s.codePointAt(0) // => 72: ES6, funktioniert mit Codepoints > 16 Bit.

// Funktionen zur Auffüllung von Strings in ES2017:

"x".padStart(3) // => " x": String auf eine Länge von 3 durch links

// hinzugefügte Leerzeichen erweitern.

"x".padEnd(3) // => "x ": String auf eine Länge von 3 durch rechts

// hinzugefügte Leerzeichen erweitern.

"x".padStart(3, "*") // => "**x": String auf eine Länge von 3 durch links

// hinzugefügte Sternchen erweitern.

"x".padEnd(3, "-") // => "x--": String auf eine Länge von 3 durch rechts

// hinzugefügte Bindestriche erweitern.

// Funktionen zur Beschneidung von Leerzeichen. trim() ist ES5, andere Funktionen

// sind ES2019:

" test ".trim() // => "test": Leerzeichen am Anfang und am Ende entfernen.

" test ".trimStart() // => "test ": Leerzeichen links entfernen. Auch trimLeft.

" test ".trimEnd() // => "test": Leerzeichen rechts entfernen. Auch trimRight.

// Verschiedene String-Methoden:

s.concat("!") // => "Hello, world!": Oder benutzen Sie stattdessen

// einfach den +-Operator.

"<>".repeat(5) // => "<><><><><>": n Kopien verketten. ES6.

Denken Sie daran, dass Strings in JavaScript unveränderbar sind. Methoden wie replace() und toUpperCase() liefern neue Strings – den String, auf dem sie aufgerufen werden, verändern sie nicht.

Strings können auch wie schreibgeschützte Arrays behandelt werden, und Sie können auf einzelne Zeichen (16-Bit-Werte) eines Strings auch mit eckigen Klammern anstelle der charAt()-Methode zugreifen:

let s = "hello, world";

s[0] // => "h"

s[s.length-1] // => "d"

JavaScript  –  Das Handbuch für die Praxis

Подняться наверх