JS метод String.indexOf()
Загальний опис
Метод String.prototype.indexOf() відіграє ключову роль у визначенні позиції підрядка всередині рядка. Цей метод повертає індекс першої появи заданого підрядка в рядку. Якщо підрядок не знайдено, метод повертає -1. indexOf() є незамінним інструментом для обробки тексту, аналізу даних, і в багатьох інших сценаріях, де потрібно знайти конкретний фрагмент в рядку.
Основний спосіб використання indexOf() полягає у виклику методу на рядковому об'єкті з передачею підрядка як аргумента. Наприклад:
let sentence = "Hello, world!";
let word = "world";
console.log(sentence.indexOf(word)); // виведе 7
У цьому прикладі, метод повідомляє, що підрядок "world" починається з індексу 7 у рядку sentence.
Можна також вказати другий аргумент для indexOf(), який визначає позицію у рядку, з якої почнеться пошук. Це корисно, коли потрібно знайти підрядок, що повторюється, або коли хочеться обмежити область пошуку:
console.log(sentence.indexOf("o", 5)); // виведе 8
Тут пошук літери "o" починається з індексу 5, і метод знаходить наступну літеру "o" на позиції 8.
Важливо зазначити, що indexOf() чутливий до регістру, тому пошук "Hello" і "hello" в одному і тому ж рядку дадуть різні результати. Ось чому при роботі з текстом, який може мати різний регістр, важливо враховувати цю особливість.
Використання indexOf() є основоположним для багатьох алгоритмів обробки тексту в JavaScript, і знання його особливостей допоможе писати більш ефективний і зрозумілий код.
- Порада
-
Якщо вам потрібно перевірити, чи міститься підрядок у рядку,
indexOf()може бути корисним. Якщо метод повертає -1, підрядок відсутній. Наприклад,
автор: Bondif ('Hello World'.indexOf('Hello') !== -1) { /* Код виконується, якщо 'Hello' знайдено */ } - Нотатка
-
Важливо пам'ятати, що метод
автор: BondString.prototype.indexOf()є чутливим до регістру. Це означає, що великі та малі літери розглядаються як різні символи. Наприклад,'Hello World'.indexOf('world')поверне -1, оскільки 'world' написано маленькими літерами, а в оригінальному рядку - великими. - Нотатка
-
автор: BondindexOf()може використовуватися для визначення точної позиції підрядка в рядку. Це корисно для дальшої обробки рядків. Наприклад, ви можете використовувати цю позицію для вирізання або заміни частини рядка. - Нотатка
-
Метод дозволяє вказати початкову позицію пошуку другим аргументом. Це корисно, коли потрібно знайти повторення підрядка або ігнорувати певну частину рядка. Наприклад,
автор: Bond'Hello World'.indexOf('o', 5)почне пошук з шостої позиції, тому перше 'o' у слові 'Hello' ігнорується.
Синтаксис
indexOf(searchString)
indexOf(searchString, position)
Параметри
searchString-
Підрядок, який потрібно знайти у основному рядку. Всі значення автоматично перетворюються на рядки, тому пропуск аргументу або передача
автор: Bondundefinedспричинить пошук рядка"undefined", що зазвичай не є бажаним. position-
Позиція в рядку, з якої починається пошук
автор: BondsearchString. Якщо не вказано, за замовчуванням приймається 0, що означає початок рядка. Якщоpositionбільше довжини рядка, пошук в рядку не відбувається. Якщоpositionменше нуля, метод поводиться так, нібиpositionбув 0.
Повернення
index-
Повертає ціле число, яке вказує індекс першого входження
searchStringу викликаючому рядку. ЯкщоsearchStringне знайдено, повертається -1.Цікавий випадок виникає при пошуку порожнього рядка (
""): якщо другий аргумент відсутній або його значення менше довжини рядка, метод повертає значення цього аргументу (або 0, якщо аргумент відсутній).Наприклад,
автор: Bond'hello world'.indexOf("")повертає 0, а'hello world'.indexOf("", 3)повертає 3. Однак, якщо значення другого аргументу дорівнює або перевищує довжину рядка, метод повертає довжину рядка. Наприклад,'hello world'.indexOf("", 11)повертає 11.
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 3 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі користувачі можуть ввести основний рядок і підрядок, а потім натиснути кнопку, щоб знайти позицію підрядка. Результат (індекс або повідомлення "Не знайдено") відображається на сторінці.
У цьому прикладі ми використовуємо String.prototype.indexOf() для знаходження позиції першої появи підстроки в рядку. Це базове застосування методу, яке може бути корисним для простої перевірки наявності певного тексту в рядку.
// Створюємо рядок
let message = "Привіт, світ JavaScript!";
// Знаходимо позицію слова "JavaScript" в рядку
let position = message.indexOf("JavaScript");
console.log(position); // Виводить: 13
У цьому прикладі String.prototype.indexOf() використовується для визначення наявності всіх входжень підстроки в рядок. Ми використовуємо цикл для пошуку кожного наступного входження підстроки, оновлюючи позицію пошуку після кожного знаходження.
// Створюємо рядок
let text = "JavaScript - мова програмування. JavaScript використовується в браузерах.";
// Починаємо пошук від позиції 0
let searchFor = "JavaScript";
let position = 0;
while ((position = text.indexOf(searchFor, position)) !== -1) {
console.log("Знайдено на позиції: " + position);
position += searchFor.length; // Оновлюємо позицію для наступного пошуку
}
Коментарі
Коментарів ще немає — будьте першим!