String.prototype.indexOf()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Die indexOf() Methode von String Werten durchsucht diese Zeichenfolge und gibt den Index des ersten Vorkommens des angegebenen Substrings zurück. Sie nimmt eine optionale Startposition entgegen und liefert das erste Vorkommen des angegebenen Substrings an einem Index, der größer oder gleich der angegebenen Zahl ist.
Probieren Sie es aus
const paragraph = "I think Ruth's dog is cuter than your dog!";
const searchTerm = "dog";
const indexOfFirst = paragraph.indexOf(searchTerm);
console.log(`The index of the first "${searchTerm}" is ${indexOfFirst}`);
// Expected output: "The index of the first "dog" is 15"
console.log(
`The index of the second "${searchTerm}" is ${paragraph.indexOf(
searchTerm,
indexOfFirst + 1,
)}`,
);
// Expected output: "The index of the second "dog" is 38"
Syntax
indexOf(searchString)
indexOf(searchString, position)
Parameter
searchString-
Substring, der gesucht werden soll. Alle Werte werden in Zeichenfolgen umgewandelt, daher führt das Weglassen oder Übergeben von
undefineddazu, dassindexOf()nach der Zeichenfolge"undefined"sucht, was selten gewünscht ist. positionOptional-
Die Methode gibt den Index des ersten Vorkommens des angegebenen Substrings an einer Position zurück, die größer oder gleich
positionist, welche standardmäßig0ist. Wennpositiongrößer als die Länge der aufrufenden Zeichenfolge ist, durchsucht die Methode die aufrufende Zeichenfolge überhaupt nicht. Wennpositionkleiner als null ist, verhält sich die Methode so, als wäreposition0.-
'hello world hello'.indexOf('o', -5)gibt4zurück — da dies dazu führt, dass sich die Methode so verhält, als wäre das zweite Argument0, und das erste Vorkommen vonoan einer Position größer oder gleich0an Position4ist. -
'hello world hello'.indexOf('world', 12)gibt-1zurück — weil, obwohl es stimmt, dass der Substringworldbei Index6vorkommt, diese Position nicht größer oder gleich12ist. -
'hello world hello'.indexOf('o', 99)gibt-1zurück — weil99größer als die Länge vonhello world helloist, was dazu führt, dass die Methode die Zeichenfolge überhaupt nicht durchsucht.
-
Rückgabewert
Der Index des ersten gefundenen Vorkommens von searchString, oder -1, wenn nicht gefunden.
Rückgabewert bei Verwendung eines leeren Suchstrings
Die Suche nach einem leeren Suchstring führt zu seltsamen Ergebnissen. Ohne zweites Argument oder mit einem zweiten Argument, dessen Wert kleiner als die Länge der aufrufenden Zeichenfolge ist, entspricht der Rückgabewert dem Wert des zweiten Arguments:
"hello world".indexOf(""); // returns 0
"hello world".indexOf("", 0); // returns 0
"hello world".indexOf("", 3); // returns 3
"hello world".indexOf("", 8); // returns 8
Wenn jedoch das zweite Argument einen Wert hat, der größer oder gleich der Länge der Zeichenfolge ist, entspricht der Rückgabewert der Länge der Zeichenfolge:
"hello world".indexOf("", 11); // returns 11
"hello world".indexOf("", 13); // returns 11
"hello world".indexOf("", 22); // returns 11
Im ersten Fall verhält sich die Methode, als hätte sie einen leeren String direkt nach der im zweiten Argument angegebenen Position gefunden. Im zweiten Fall verhält sich die Methode, als hätte sie einen leeren String am Ende der aufrufenden Zeichenfolge gefunden.
Beschreibung
Zeichenfolgen sind nullbasiert: Der Index des ersten Zeichens einer Zeichenfolge ist 0, und der Index des letzten Zeichens einer Zeichenfolge ist die Länge der Zeichenfolge minus 1.
"Blue Whale".indexOf("Blue"); // returns 0
"Blue Whale".indexOf("Wale"); // returns -1
"Blue Whale".indexOf("Whale", 0); // returns 5
"Blue Whale".indexOf("Whale", 5); // returns 5
"Blue Whale".indexOf("Whale", 7); // returns -1
"Blue Whale".indexOf(""); // returns 0
"Blue Whale".indexOf("", 9); // returns 9
"Blue Whale".indexOf("", 10); // returns 10
"Blue Whale".indexOf("", 11); // returns 10
Die indexOf() Methode ist case-sensitive. Zum Beispiel gibt der folgende Ausdruck -1 zurück:
"Blue Whale".indexOf("blue"); // returns -1
Überprüfen von Vorkommen
Um zu überprüfen, ob ein bestimmter Substring in einer Zeichenfolge vorkommt, sollte man richtig prüfen, ob der Rückgabewert -1 ist:
"Blue Whale".indexOf("Blue") !== -1; // true; found 'Blue' in 'Blue Whale'
"Blue Whale".indexOf("Wale") !== -1; // false; no 'Wale' in 'Blue Whale'
Beispiele
>Verwendung von indexOf()
Das folgende Beispiel verwendet indexOf(), um Substrings in der Zeichenfolge "Brave new world" zu lokalisieren.
const str = "Brave new world";
console.log(str.indexOf("w")); // 8
console.log(str.indexOf("new")); // 6
indexOf() und Groß-/Kleinschreibung
Das folgende Beispiel definiert zwei String-Variablen.
Die Variablen enthalten denselben String, außer dass die zweite Zeichenfolge Großbuchstaben enthält. Die erste console.log() Methode zeigt 19 an. Aber da die indexOf() Methode case-sensitive ist, wird der String "cheddar" in myCapString nicht gefunden, sodass die zweite console.log() Methode -1 anzeigt.
const myString = "brie, pepper jack, cheddar";
const myCapString = "Brie, Pepper Jack, Cheddar";
console.log(myString.indexOf("cheddar")); // 19
console.log(myCapString.indexOf("cheddar")); // -1
Verwendung von indexOf() zur Zählung von Vorkommen eines Buchstabens in einer Zeichenfolge
Das folgende Beispiel setzt count auf die Anzahl der Vorkommen des Buchstabens e in der Zeichenfolge str:
const str = "To be, or not to be, that is the question.";
let count = 0;
let position = str.indexOf("e");
while (position !== -1) {
count++;
position = str.indexOf("e", position + 1);
}
console.log(count); // 4
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.indexof> |
Browser-Kompatibilität
Loading…