logo

Різниця між indexof і пошуком у JavaScript

вступ:

JavaScript — це широко поширена мова програмування, яка надає кілька вбудованих методів для роботи з рядками. Два найпоширеніших методу пошуку певного символу або підрядка в рядку: indexOf() і пошук() . Хоча ці два методи можуть здаватися схожими за функціональністю, вони мають кілька ключових відмінностей. У цій статті ми дослідимо відмінності між indexOf() і search() у JavaScript.

Метод indexOf():

The indexOf() метод — це вбудована функція JavaScript, яка використовується для пошуку індексу першого входження підрядка в заданий рядок. Цей метод повертає індекс першого входження зазначеного підрядка, починаючи з початку рядка. Якщо підрядок не знайдено, метод повертає -1 .

Синтаксис:

Синтаксис використання indexOf() метод полягає в наступному:

 string.indexOf(searchValue[, fromIndex]) 

тут, рядок це рядок для пошуку, searchValue це значення для пошуку, і fromIndex є необов'язковим параметром, який визначає позицію в рядку, з якої має початися пошук. Якщо fromIndex не передбачено, в indexOf() метод починає пошук з початку рядка. Якщо fromIndex це негативний значення, пошук починається з кінця рядка.

приклад:

одиночний шаблон проектування java

Давайте візьмемо приклад, щоб зрозуміти indexof() метод:

 let str = 'JavaScript is a powerful programming language'; let index = str.indexOf('powerful'); console.log(index); 

Вихід:

 16 

Пояснення:

Ось, метод indexOf(). шукає перше входження слова 'потужний' в рядку «JavaScript — потужна мова програмування» . Оскільки слово 'потужний' з’являється в індексі 16 , метод повертає 16 .

Метод search():

The метод search(). також є вбудованою функцією JavaScript, яка використовується для пошуку індексу першого символу підрядка в заданому рядку. Цей метод повертає індекс першого входження зазначеного підрядка, починаючи з початку рядка. Якщо підрядок не знайдено, метод повертає -1 .

Синтаксис:

Синтаксис використання метод search(). полягає в наступному:

 string.search(regexp) 

тут, рядок це рядок для пошуку, і регулярний вираз є регулярний вираз шаблон для пошуку. Якщо регулярний вираз закономірність знайдено, в пошук() метод повертає індекс першого символу збігу. Якщо шаблон регулярного виразу не знайдено, метод повертається -1 .

приклад:

Давайте візьмемо приклад, щоб зрозуміти пошук() метод:

 let str = 'JavaScript is a powerful programming language'; let index = str.search(/powerful/); console.log(index); 

Вихід:

 16 

Пояснення:

Ось, пошук() метод шукає регулярний вираз візерунок /потужний/ в рядку «JavaScript — потужна мова програмування» . Оскільки шаблон регулярного виразу відповідає слову 'потужний' , метод повертає 16 .

Відмінності між indexOf() і search():

Хоча обидва indexOf() і пошук() методи використовуються для пошуку підрядка в даному рядку, вони мають кілька ключових відмінностей. Давайте розглянемо ці відмінності пліч-о-пліч:

Метод indexOf(). Метод search().
indexOf() метод шукає вказаний підрядок у заданому рядку. пошук() метод шукає шаблон регулярного виразу в заданому рядку.
Метод indexOf() повертає індекс першого входження зазначеного підрядка. Метод search() повертає індекс першого символу збігу.
Метод indexOf() не підтримує регулярні вирази. Метод search() підтримує регулярні вирази.
Метод indexOf() може приймати додатковий параметр fromIndex, щоб розпочати пошук із певного індексу. Метод search() не приймає необов’язковий параметр для початку пошуку з певного індексу.
Метод indexOf() швидший за метод search(), оскільки він не підтримує регулярні вирази. Метод search() повільніший за метод indexOf(), оскільки він підтримує регулярні вирази.
Метод indexOf() чутливий до регістру. Метод search() також чутливий до регістру за замовчуванням, але його можна зробити нечутливим за допомогою /i прапор у шаблоні регулярного виразу.
Метод indexOf() широко використовується для простого пошуку рядків. Метод search() широко використовується для пошуку складних шаблонів за допомогою регулярних виразів.

Висновок:

На завершення обидва indexOf() і пошук() методи корисні для пошуку підрядка в даному рядку. Однак вони мають кілька ключових відмінностей, які роблять їх придатними для різних випадків використання. Метод indexOf() є швидшим і більш придатним для простого пошуку рядків, тоді як метод search() підтримує регулярні вирази та більше підходить для зіставлення складних шаблонів. Важливо вибрати відповідний метод на основі конкретних вимог вашої програми.