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.

автор: Bond

Нотатка

Метод String.prototype.lastIndexOf() ідеально підходить для знаходження позиції останнього входження підрядка. Це корисно, наприклад, коли вам потрібно обробити або замінити останнє входження певного слова або символа в рядку.

автор: Bond
Нотатка

ам'ятайте, що lastIndexOf() чутливий до регістру, тобто відрізняє великі та малі літери. Це означає, що пошук 'A' та 'a' дасть різні результати. У випадках, коли потрібно ігнорувати регістр, можна перетворити рядок на нижній або верхній регістр перед використанням методу.

автор: Bond
Нотатка

Ви можете вказати позицію в рядку, з якої слід почати пошук, використовуючи другий аргумент методу. Це може бути корисно, наприклад, коли вам потрібно знайти останнє входження підрядка до певної позиції в рядку.

автор: Bond
Нотатка

Якщо вам потрібно просто перевірити, чи міститься підрядок у рядку, lastIndexOf() може бути корисним. Якщо метод повертає -1, підрядок відсутній у рядку. Наприклад,

if ('Hello World'.lastIndexOf('Hello') !== -1) { /* Код виконується, якщо 'Hello' присутній у рядку */ }
автор: Bond

Синтаксис

lastIndexOf(searchString)
lastIndexOf(searchString, position)

Параметри

searchString

Підрядок, який буде шукатися у основному рядку. Всі значення конвертуються у рядки, тому пропуск цього аргументу або передача undefined призведе до пошуку рядка "undefined", що, як правило, не є бажаним результатом.

автор: Bond

position

Позиція в рядку, до якої (включно) буде виконуватися пошук searchString. За замовчуванням це значення дорівнює +Infinity, тобто пошук відбувається по всьому рядку. Якщо position більше довжини рядка, метод шукає по всьому рядку. Якщо position менше 0, метод поводиться так само, як і при значенні 0, тобто шукає підрядок лише на позиції 0.

автор: Bond

Повернення

index

Повертає індекс (типу number), на якому останній раз зустрічається вказаний підрядок (searchString) у вихідному рядку. Якщо підстрока не знайдена, метод повертає -1.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 3 12 6
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі демонструється використання String.prototype.lastIndexOf() для знаходження позиції останнього входження підстроки в рядок. Цей метод дуже корисний, коли потрібно знайти останнє входження певного тексту в довгому рядку.

// Створюємо рядок
let message = "Привіт, світ JavaScript!";

// Знаходимо позицію слова "JavaScript" в рядку
let position = message.indexOf("JavaScript");

console.log(position); // Виводить: 13
автор: Bond

У цьому прикладі 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; // Оновлюємо позицію для наступного пошуку
}
автор: Bond

У цьому прикладі користувачі можуть ввести основний рядок і підрядок, а потім натиснути кнопку, щоб знайти останній індекс підрядка. Результат (індекс або повідомлення "Не знайдено") відображається на сторінці.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід