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 ObjektString
kennen, 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-WrappersString
zugreifen 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 Eigenschaftlength
die 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 VariablensplitString
haben, 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 ObjektString
kennengelernt, 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“.