lastIndexOf
возвращает индекс первого символа в подстроке, где подстрока появляется последним в суперструне.
var home = "Home sweet sweet home";
// ^Matches here
console.log(home.lastIndexOf("ee"));
Чтобы найти вторую e
, когда он образует часть строки ee
используйте indexOf
, а затем добавить 1 (вы знаете, что второй символ ee
1 символ мимо первого символа substring, так что вы знаете, что так много добавить, если вы хотите использовать последний символ подстроки, то вы можете рассчитать его, используя .length
подстроки).
var home = "Home sweet home";
// ^Matches here
console.log(home.indexOf("ee") + 1);
Чтобы найти вторую e
, когда он может или не может быть частью строки ee
используйте indexOf
, чтобы найти первую e
, а затем использовать его снова передавая индекс символа после первого e
как второй аргумент.
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);
Просто добавьте 1 к возвращенному значению –
Это, очевидно, способ обойти его, но есть ли способ получить индекс второго «e» в сладком? –
@AlfMoh Это не обходной путь. Это правильное решение. Вы знаете, что второе «е» находится на месте «начала искомой строки + 1».Также вы должны знать, что 'indexOf/lastIndexOf' возвращает индекс, в котором может быть найдено ** целая строка **. Таким образом, вы должны объединить эти две части информации и вуаля. – freakish