lastIndexOf() ищет подстроку в строке и возвращает индекс её последнего вхождения.
Если подстрока не найдена, метод вернёт -1.
Синтаксис
str.lastIndexOf(searchString)
str.lastIndexOf(searchString, position)
Метод вызывается у строки и возвращает число.
Как работает lastIndexOf()
const text = "banana";
console.log(text.lastIndexOf("a")); // 5
console.log(text.lastIndexOf("na")); // 4
console.log(text.lastIndexOf("x")); // -1
Метод ищет справа налево, но возвращает обычный индекс найденного вхождения.
Позиция начала поиска
Во втором аргументе можно указать, с какого индекса начинать поиск назад.
const text = "banana";
console.log(text.lastIndexOf("a")); // 5
console.log(text.lastIndexOf("a", 4)); // 3
console.log(text.lastIndexOf("a", 2)); // 1
Это полезно, если нужно искать не по всей строке, а только в её части.
Если подстрока не найдена
Если совпадения нет, lastIndexOf() вернёт -1.
const text = "JavaScript";
console.log(text.lastIndexOf("TypeScript")); // -1
Регистр важен
lastIndexOf() чувствителен к регистру.
const text = "JavaScript Java";
console.log(text.lastIndexOf("java")); // -1
console.log(text.lastIndexOf("Java")); // 11
Если нужен поиск без учёта регистра, строку обычно заранее приводят к одному формату.
const text = "JavaScript Java";
console.log(text.toLowerCase().lastIndexOf("java")); // 11
Когда это полезно
lastIndexOf() удобно использовать, когда:
- нужно найти последнее вхождение подстроки
- важно получить именно индекс
- нужно искать с конца строки
Пример:
const file = "archive.backup.zip";
console.log(file.lastIndexOf(".")); // 14
Так часто находят позицию последней точки в имени файла.
lastIndexOf() и indexOf()
indexOf() ищет первое вхождение, а lastIndexOf() - последнее.
const text = "banana";
console.log(text.indexOf("a")); // 1
console.log(text.lastIndexOf("a")); // 5
Если нужно искать с конца строки, lastIndexOf() подходит лучше.
Если подстрока пустая
Пустая строка тоже считается найденной.
const text = "hello";
console.log(text.lastIndexOf("")); // 5
console.log(text.lastIndexOf("", 2)); // 2
Частые ошибки
Думать, что lastIndexOf() возвращает true или false
const text = "banana";
console.log(text.lastIndexOf("a")); // 5
Метод возвращает не булево значение, а индекс.
Путать направление поиска и возвращаемое значение
const text = "banana";
console.log(text.lastIndexOf("a")); // 5
Метод ищет справа налево, но результат всё равно остаётся обычным индексом в строке.
Забывать про -1
const text = "banana";
console.log(text.lastIndexOf("x")); // -1
Если совпадения нет, нужно проверять именно -1.
Быстрая памятка
lastIndexOf(searchString)возвращает индекс последнего вхождения- если подстрока не найдена, метод вернёт
-1 - можно указать позицию начала поиска назад
- поиск чувствителен к регистру
- если нужно первое вхождение, используют
indexOf()
Коротко
lastIndexOf() - это метод строки в JavaScript, который ищет последнее вхождение подстроки и возвращает его индекс. Он полезен, когда нужно искать с конца строки, например последнюю точку, слэш или повторяющийся символ.