Der Zweck von indexOf besteht darin, die Position eines Wortes in einer Zeichenfolge zu finden
lastIndexOf ist ebenfalls eine Wortsuche. Der Unterschied zwischen ihnen besteht darin, dass ersteres am Anfang der Zeichenfolge und letzteres am Ende der Zeichenfolge beginnt.
Sobald das angegebene Wort gefunden wurde, wird die aktuelle Positionsnummer des Worts zurückgegeben. Wenn nicht gefunden, geben Sie -1 zurück.
var str = "//www.stooges.com.my/test/index.aspx123/"; console.log(str.indexOf("/")); //0 console.log(str.lastIndexOf("/")); //39
Parameter 1 ist das Wort, nach dem gesucht werden soll. Es muss str sein, ein regulärer Ausdruck funktioniert nicht.
Außerdem wird der 2. Parameter akzeptiert. Zahlentyp, damit können wir den Suchbereich festlegen.
var str = "//www.stooges.com.my/test/index.aspx123/"; console.log(str.indexOf("/", 0)); //0 默认情况是 0 console.log(str.lastIndexOf("/", str.length)); //39 默认情况是 str.length
Die Steuerung der beiden Methoden erfolgt in unterschiedliche Richtungen.
Angenommen, indexOf ist auf 10 gesetzt, dann reicht der Suchbereich von 10 bis str.length (Ende des Zeichens)
Wenn lastIndexOf auf 10 eingestellt ist, reicht der Suchbereich von 10 bis 0 (Präfix)
Darauf sollten Sie achten.
ps: Wenn es auf eine negative Zahl wie -500 eingestellt ist, treten seltsame Phänomene auf, die ich selbst nicht verstehen kann = = " ;
Manchmal möchten wir das n-te angeben. Dann können wir es mit der oben genannten Methode erreichen.
Zum Beispiel:
String.prototype.myIndexOf = function (searchValue, startIndex) { var text = this; startIndex = startIndex || 1; var is_negative = startIndex < 0; var ipos = (is_negative) ? text.length + 1 : 0 - 1; var loopTime = Math.abs(startIndex); for (var i = 0; i < loopTime ; i++) { ipos = (is_negative) ? text.lastIndexOf(searchValue, ipos - 1) : text.indexOf(searchValue, ipos + 1); if (ipos == -1) break; } return ipos; }
var str = "//www.stooges.com.my/test/index.aspx123/"; console.log(str.myIndexOf("/", 3)); //20 console.log(str.myIndexOf("/", -2)); //25 倒数第2个的位置