В этом руководстве вы узнаете, как использовать метод JavaScript String lastIndexOf()
для поиска последнего вхождения подстроки в строке.
String.prototype.lastIndexOf()
возвращает последнее вхождение подстроки( substr
) в строку( str
).
str.lastIndexOf(substr, [, fromIndex]);
Он возвращает -1, если str
не содержит substr
.
Метод lastIndexOf()
ищет подстроку в обратном направлении от fromIndex
. fromIndex
является необязательным и по умолчанию равен +Infinity
. Это означает, что если вы опустите fromIndex
, поиск начнется с конца строки.
- Если
fromIndex
больше или равенstr.length
,lastIndexOf()
будет искатьsubstr
во всей строке. - Если
fromIndex
меньше нуля, поведение поиска такое же, как если быfromIndex
был равен нулю.
lastIndexOf()
всегда выполняет поиск с учетом регистра.
Чтобы найти индекс первого вхождения подстроки в строку, вы используете метод last indexOf()
.
Примеры
Давайте рассмотрим несколько примеров использования метода.
1) Использование метода
В этом примере используется метод lastIndexOf()
для поиска последнего вхождения подстроки ‘a’ в строке ‘JavaScript’ :
let str = 'JavaScript'; let index = str.lastIndexOf('a'); console.log(index);
Выход:
3
Если вы передадите аргумент fromIndex
в строку, метод lastIndexOf()
начнет поиск в обратном направлении от fromIndex
, как показано в следующем примере:
let str = 'JavaScript'; let index = str.lastIndexOf('a',2); console.log(index);
Выход:
1
2) lastIndexOf() и чувствительность к регистру
lastIndexOf()
чувствителен к регистру. Следующий пример возвращает -1:
let str = 'Hello, World!'; let substr = 'L'; let index = str.lastIndexOf(substr); console.log(index); // -1
Чтобы выполнить нечувствительный к регистру поиск индекса последнего вхождения подстроки в строке, вы можете преобразовать и подстроку, и строку в нижний регистр перед применением метода lastIndexOf()
следующим образом:
let str = 'Hello, World!'; let substr = 'L'; let index = str.toLocaleLowerCase().lastIndexOf(substr.toLocaleLowerCase()); console.log(index); // -1
Заключение
- Функция
lastIndexOf()
возвращает индекс последнего вхождения подстроки в строку или -1, если строка не содержит подстроки. Она ищет подстроку в обратном направлении от конца строки или отfromIndex
, если этот аргумент доступен. lastIndexOf()
в JavaScript выполняет поиск с учетом регистра.