Indizieren, Teilen und Bearbeiten von Zeichenfolgen in JavaScript

Einführung

Einstring ist eine Folge von einem oder mehreren Zeichen, die aus Buchstaben, Zahlen oder Symbolen bestehen können. Auf jedes Zeichen in einer JavaScript-Zeichenfolge kann über eine Indexnummer zugegriffen werden, und allen Zeichenfolgen stehen Methoden und Eigenschaften zur Verfügung.

In diesem Lernprogramm lernen wir den Unterschied zwischen Zeichenfolgenprimitiven und dem ObjektStringkennen, wie Zeichenfolgen indiziert werden, wie auf Zeichen in einer Zeichenfolge zugegriffen wird und welche allgemeinen Eigenschaften und Methoden für Zeichenfolgen verwendet werden.

String-Primitive und String-Objekte

Zunächst werden die beiden Arten von Zeichenfolgen erläutert. JavaScript unterscheidet zwischenstring primitive, einem unveränderlichen Datentyp, und dem ObjektString.

Um den Unterschied zwischen den beiden zu testen, werden wir ein String-Primitiv und ein String-Objekt initialisieren.

// Initializing a new string primitive
const stringPrimitive = "A new string.";

// Initializing a new String object
const stringObject = new String("A new string.");

Wir können den Operatortypeof verwenden, um den Typ eines Werts zu bestimmen. Im ersten Beispiel haben wir einer Variablen einfach eine Zeichenfolge zugewiesen.

typeof stringPrimitive;
Outputstring

Im zweiten Beispiel haben wirnew String() verwendet, um ein Zeichenfolgenobjekt zu erstellen und es einer Variablen zuzuweisen.

typeof stringObject;
Outputobject

Meistens erstellen Sie Zeichenfolgenprimitive. JavaScript kann auf die integrierten Eigenschaften und Methoden des Objekt-WrappersStringzugreifen und diese verwenden, ohne das von Ihnen erstellte Zeichenfolgenprimitiv tatsächlich in ein Objekt zu ändern.

Während dieses Konzept zunächst eine Herausforderung darstellt, sollten Sie sich der Unterscheidung zwischen Primitiv und Objekt bewusst sein. Grundsätzlich stehen für alle Zeichenfolgen Methoden und Eigenschaften zur Verfügung. Im Hintergrund führt JavaScript bei jedem Aufruf einer Methode oder Eigenschaft eine Konvertierung in ein Objekt und zurück in ein Grundelement durch.

Wie Strings indiziert werden

Jedes der Zeichen in einer Zeichenfolge entspricht einer Indexnummer, beginnend mit0.

Zur Demonstration erstellen wir eine Zeichenfolge mit dem WertHow are you?.

H o w a r e y o u ?

0

1

2

3

4

5

6

7

8

9

10

11

Das erste Zeichen in der Zeichenfolge istH, was dem Index0 entspricht. Das letzte Zeichen ist?, was11 entspricht. Die Leerzeichen haben auch einen Index bei3 und7.

Wenn wir auf jedes Zeichen in einer Zeichenfolge zugreifen können, haben wir verschiedene Möglichkeiten, mit Zeichenfolgen zu arbeiten und sie zu bearbeiten.

Zugreifen auf Charaktere

Wir werden zeigen, wie Sie mit der ZeichenfolgeHow are you?auf Zeichen und Indizes zugreifen.

"How are you?";

Mit eckiger Klammer können wir auf jedes Zeichen in der Zeichenkette zugreifen.

"How are you?"[5];
Outputr

Wir können auch diecharAt()-Methode verwenden, um das Zeichen unter Verwendung der Indexnummer als Parameter zurückzugeben.

"How are you?".charAt(5);
Outputr

Alternativ können wirindexOf() verwenden, um die Indexnummer bei der ersten Instanz eines Zeichens zurückzugeben.

"How are you?".indexOf("o");
Output1

Obwohl "o" zweimal in der ZeichenfolgeHow are you? vorkommt, erhältindexOf() die erste Instanz.

lastIndexOf() wird verwendet, um die letzte Instanz zu finden.

"How are you?".lastIndexOf("o");
Output9

Bei beiden Methoden können Sie auch nach mehreren Zeichen in der Zeichenfolge suchen. Es wird die Indexnummer des ersten Zeichens in der Instanz zurückgegeben.

"How are you?".indexOf("are");
Output4

Die Methodeslice() gibt dagegen die Zeichen zwischen zwei Indexnummern zurück. Der erste Parameter ist die Startindexnummer, und der zweite Parameter ist die Indexnummer, an der er enden soll.

"How are you?".slice(8, 11);
Outputyou

Beachten Sie, dass11? ist,? jedoch nicht Teil der zurückgegebenen Ausgabe ist. slice() gibt zurück, was zwischen dem letzten Parameter liegt, schließt ihn jedoch nicht ein.

Wenn kein zweiter Parameter enthalten ist, gibtslice() alles vom Parameter bis zum Ende der Zeichenfolge zurück.

"How are you?".slice(8);
Outputyou?

Zusammenfassend lässt sich sagen, dasscharAt() undslice() dazu beitragen, Zeichenfolgenwerte basierend auf Indexnummern zurückzugeben, undindexOf() undlastIndexOf() das Gegenteil bewirken und Indexnummern basierend auf den angegebenen Zeichenfolgen zurückgeben .

Ermitteln der Länge einer Zeichenfolge

Mit der Eigenschaftlength können wir die Anzahl der Zeichen in einer Zeichenfolge zurückgeben.

"How are you?".length;
Output12

Denken Sie daran, dass die Eigenschaftlengthdie tatsächliche Anzahl von Zeichen zurückgibt, die mit 1 beginnen, was 12 ergibt, und nicht die endgültige Indexnummer, die bei0 beginnt und bei11 endet.

Umwandlung in Groß- oder Kleinschreibung

Die beiden integrierten MethodentoUpperCase() undtoLowerCase() sind hilfreiche Methoden zum Formatieren von Text und zum Vergleichen von Text in JavaScript.

toUpperCase() konvertiert alle Zeichen in Großbuchstaben.

"How are you?".toUpperCase();
OutputHOW ARE YOU?

toLowerCase() konvertiert alle Zeichen in Kleinbuchstaben.

"How are you?".toLowerCase();
Outputhow are you?

Diese beiden Formatierungsmethoden benötigen keine zusätzlichen Parameter.

Es ist erwähnenswert, dass diese Methoden die ursprüngliche Zeichenfolge nicht ändern.

Saiten aufteilen

JavaScript bietet eine sehr nützliche Methode, um eine Zeichenfolge durch ein Zeichen zu teilen und aus den Abschnitten ein neuesarrayzu erstellen. Wir werden diesplit()-Methode verwenden, um das Array durch ein Leerzeichen zu trennen, das durch" " dargestellt wird.

const originalString = "How are you?";

// Split string by whitespace character
const splitString = originalString.split(" ");

console.log(splitString);
Output[ 'How', 'are', 'you?' ]

Nachdem wir ein neues Array in der VariablensplitStringhaben, können wir auf jeden Abschnitt mit einer Indexnummer zugreifen.

splitString[1];
Outputare

Wenn ein leerer Parameter angegeben wird, erstelltsplit() mit jedem Zeichen in der Zeichenfolge ein durch Kommas getrenntes Array.

Durch Aufteilen von Zeichenfolgen können Sie ermitteln, wie viele Wörter ein Satz enthält, und mithilfe dieser Methode beispielsweise Vor- und Nachnamen von Personen ermitteln.

Leerzeichen zuschneiden

Die JavaScripttrim()-Methode entfernt Leerzeichen an beiden Enden einer Zeichenfolge, jedoch nicht irgendwo dazwischen. Leerzeichen können Tabulatoren oder Leerzeichen sein.

const tooMuchWhitespace = "     How are you?     ";

const trimmed = tooMuchWhitespace.trim();

console.log(trimmed);
OutputHow are you?

Dietrim()-Methode ist eine einfache Methode, um die allgemeine Aufgabe des Entfernens überschüssiger Leerzeichen auszuführen.

Suchen und Ersetzen von Zeichenfolgenwerten

Wir können eine Zeichenfolge nach einem Wert durchsuchen und ihn mit der Methodereplace()durch einen neuen Wert ersetzen. Der erste Parameter ist der Wert, der gefunden werden soll, und der zweite Parameter ist der Wert, durch den er ersetzt werden soll.

const originalString = "How are you?"

// Replace the first instance of "How" with "Where"
const newString = originalString.replace("How", "Where");

console.log(newString);
OutputWhere are you?

Wir können nicht nur einen Wert durch einen anderen Zeichenfolgenwert ersetzen, sondern auchRegular Expressions verwenden, umreplace() leistungsfähiger zu machen. Zum Beispiel wirkt sichreplace() nur auf den ersten Wert aus, aber wir können das Flagg (global) verwenden, um alle Instanzen eines Werts abzufangen, und das Flagi (ohne Berücksichtigung der Groß- und Kleinschreibung), um es zu ignorieren Fall.

const originalString = "Javascript is a programming language. I'm learning javascript."

// Search string for "javascript" and replace with "JavaScript"
const newString = originalString.replace(/javascript/gi, "JavaScript");

console.log(newString);
OutputJavaScript is a programming language. I'm learning JavaScript.

Dies ist eine sehr häufige Aufgabe, bei der reguläre Ausdrücke verwendet werden. Besuchen SieRegexr, um weitere Beispiele für RegEx zu üben.

Fazit

Zeichenfolgen gehören zu den am häufigsten verwendeten Datentypen, und wir können viel damit anfangen.

In diesem Lernprogramm haben wir den Unterschied zwischen dem Primitiv der Zeichenfolge und dem ObjektStringkennengelernt, wie Zeichenfolgen indiziert werden und wie die integrierten Methoden und Eigenschaften von Zeichenfolgen verwendet werden, um auf Zeichen zuzugreifen, Text zu formatieren und Werte zu suchen und zu ersetzen .

Um einen allgemeineren Überblick über Zeichenfolgen zu erhalten, lesen Sie das Tutorial „https://www.digitalocean.com/community/tutorials/how-to-work-with-strings-in-javascript[How To Work with Strings in JavaScript“.