lastIndexOf
gibt den Index des ersten Zeichens in der Teilzeichenkette zurück, in dem die Teilzeichenkette zuletzt im Superstring angezeigt wird.
var home = "Home sweet sweet home";
// ^Matches here
console.log(home.lastIndexOf("ee"));
Um den zweiten e
zu finden, wenn es Teil der Zeichenfolge ee
bildet indexOf
verwenden und fügen Sie dann 1 (Sie wissen schon das zweite Zeichen von ee
ist 1 Zeichen hinter dem ersten Zeichen der Teilstring, so dass Sie wissen, dass Sie so viel hinzufügen, wenn Sie das letzte Zeichen des Teilstrings wollen, dann können Sie es mit der .length
des Teilstrings berechnen.
var home = "Home sweet home";
// ^Matches here
console.log(home.indexOf("ee") + 1);
die zweite e
zu finden, wenn es nicht oder können, indexOf
ee
Teil der Zeichenfolge bilden verwenden, um die erste e
, zu finden und es dann wieder verwenden Sie den Index des Zeichens vorbei nach dem ersten e
als zweites Argument.
var home = "The fox ate the chicken";
// ^ ^Matches in these places
var first_index = home.indexOf("e");
var second_index = home.indexOf("e", first_index + 1);
console.log(first_index, second_index);
Fügen Sie einfach 1 zum zurückgegebenen Wert hinzu –
Das ist offensichtlich eine Möglichkeit, um es zu umgehen, aber gibt es eine Möglichkeit, den Index des zweiten "e" in süß zu bekommen? –
@ AlfMoh Das ist keine Problemumgehung. Es ist eine richtige Lösung. Sie wissen, dass das zweite "e" an der Stelle "Beginn der gesuchten Zeichenfolge + 1" ist.Sie sollten auch wissen, dass 'indexOf/lastIndexOf' den Index zurückgibt, bei dem ** ganze Zeichenfolge ** gefunden werden kann. Also müssen Sie diese beiden Informationen kombinieren und voila. – freakish