JS метод String.lastIndexOf()
Загальний опис
Метод String.prototype.lastIndexOf()
- це інструмент, який дозволяє знайти індекс останньої появи заданого підрядка в рядку. Цей метод є аналогічним до indexOf()
, але, на відміну від нього, починає пошук з кінця рядка, йдучи до його початку. lastIndexOf()
повертає індекс підрядка в рядку або -1
, якщо підрядок не знайдено. Це особливо корисно у сценаріях, де потрібно знайти останнє входження підрядка, наприклад, при аналізі шляхів файлів, URL-адрес або при роботі з форматами даних, де один і той же патерн може зустрічатися кілька разів.
Для використання lastIndexOf()
просто викличте цей метод на рядковому об'єкті, передавши підрядок як аргумент. Наприклад:
let sentence = "Привіт, світ! Привіт, усім!";
console.log(sentence.lastIndexOf("Привіт")); // виведе 13
У цьому прикладі метод знаходить останнє входження слова "Привіт"
та повертає його індекс.
Також можна вказати другий аргумент, який визначає позицію у рядку, до якої буде здійснено пошук (не включаючи її). Це дозволяє обмежити область пошуку. Наприклад:
console.log(sentence.lastIndexOf("Привіт", 12)); // виведе 0
Важливою особливістю lastIndexOf()
є його чутливість до регістру, так само як і indexOf()
. Таким чином, різні варіанти регістру будуть розглядатися як різні символи.
lastIndexOf()
є надзвичайно корисним при роботі з рядками, де часто потрібно визначити позицію останнього входження певного підрядка. Знання того, як правильно використовувати цей метод, може значно спростити обробку текстових даних у JavaScript.
Нотатка: | Метод |
Нотатка: | ам'ятайте, що |
Нотатка: | Якщо вам потрібно просто перевірити, чи міститься підрядок у рядку,
|
Нотатка: | Ви можете вказати позицію в рядку, з якої слід почати пошук, використовуючи другий аргумент методу. Це може бути корисно, наприклад, коли вам потрібно знайти останнє входження підрядка до певної позиції в рядку. |
Синтаксис
lastIndexOf(searchString)
lastIndexOf(searchString, position)
Параметри
- *
searchString
Підрядок, який буде шукатися у основному рядку. Всі значення конвертуються у рядки, тому пропуск цього аргументу або передача
undefined
призведе до пошуку рядка"undefined"
, що, як правило, не є бажаним результатом.position
Позиція в рядку, до якої (включно) буде виконуватися пошук
searchString
. За замовчуванням це значення дорівнює+Infinity
, тобто пошук відбувається по всьому рядку. Якщоposition
більше довжини рядка, метод шукає по всьому рядку. Якщоposition
менше 0, метод поводиться так само, як і при значенні 0, тобто шукає підрядок лише на позиції 0.
Return
index
Повертає індекс (типу
number
), на якому останній раз зустрічається вказаний підрядок (searchString
) у вихідному рядку. Якщо підстрока не знайдена, метод повертає-1
.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
3 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі користувачі можуть ввести основний рядок і підрядок, а потім натиснути кнопку, щоб знайти останній індекс підрядка. Результат (індекс або повідомлення "Не знайдено") відображається на сторінці.
У цьому прикладі демонструється використання String.prototype.lastIndexOf()
для знаходження позиції останнього входження підстроки в рядок. Цей метод дуже корисний, коли потрібно знайти останнє входження певного тексту в довгому рядку.
// Створюємо рядок
let message = "Привіт, світ JavaScript!";
// Знаходимо позицію слова "JavaScript" в рядку
let position = message.indexOf("JavaScript");
console.log(position); // Виводить: 13
У цьому прикладі String.prototype.lastIndexOf()
використовується для знаходження останнього входження підстроки перед певною позицією в рядку. Це особливо корисно, коли потрібно знайти входження, яке знаходиться ближче до початку рядка, але перед заданою позицією.
// Створюємо рядок
let text = "JavaScript - мова програмування. JavaScript використовується в браузерах.";
// Починаємо пошук від позиції 0
let searchFor = "JavaScript";
let position = 0;
while ((position = text.indexOf(searchFor, position)) !== -1) {
console.log("Знайдено на позиції: " + position);
position += searchFor.length; // Оновлюємо позицію для наступного пошуку
}