JS метод String.search()


Загальний опис

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

Основний спосіб використання search() полягає в передачі регулярного виразу або рядка як аргументу. Метод повертає індекс першого входження шаблону в рядку, або -1, якщо шаблон не знайдено. Наприклад:

let text = "Привіт, світ!";
let index = text.search("світ");
console.log(index); // Виведе 8, тому що "світ" починається з 8-го символу

String.prototype.search() може бути особливо корисним при використанні регулярних виразів, що дозволяє здійснювати більш складні пошуки. Наприклад, для знаходження позиції першого входження слова, що починається з великої літери, можна використовувати такий код:

let text = "це випадковий Текст";
let index = text.search(/[А-Я]/);
console.log(index); // Виведе 14, позиція великої літери "Т"

Основна особливість методу search() полягає в тому, що він завжди повертає індекс першого входження шаблону в рядку. Це відрізняє його від методів, таких як match(), який може повертати всі входження шаблону. Також важливо відзначити, що search() не змінює оригінальний рядок.

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

автор: Bond

Порада

Коли використовуєте регулярні вирази як аргумент для search(), пам'ятайте про спеціальні символи регулярних виразів. Наприклад, символи, які мають спеціальне значення в регулярних виразах, такі як . або *, повинні бути екрановані, якщо ви хочете шукати їх як звичайні символи.

автор: Bond
Порада

Важливо розуміти, що search() повертає лише індекс першого збігу. Якщо вам потрібно знайти всі збіги у рядку, розгляньте використання методу match() або ітерацію з регулярним виразом та методом exec().

автор: Bond
Порада

Метод search() можна ефективно комбінувати з умовними операторами для виконання певних дій залежно від наявності чи відсутності шаблону у рядку. Наприклад, можна використовувати умову if (str.search(pattern) > -1), щоб виконати дію, якщо шаблон знайдено.

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

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

автор: Bond

Синтаксис

search(regexp)

Параметри

regexp

Об'єкт регулярного виразу або будь-який об'єкт, який має метод Symbol.search, використовується для визначення шаблону, який буде шукатися у рядку.

автор: Bond

Повернення

index

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

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 4 12
Підтримка: мобільні переглядачі
Переглядач 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.search() для знаходження позиції певного слова у рядку. Цей метод повертає індекс першого входження шуканого слова в рядку, або -1, якщо слово не знайдено.

// Визначення вихідного рядка
let sentence = "Швидка коричнева лисиця перестрибнула через ледачого собаку.";

// Пошук слова "лисиця" в рядку
let index = sentence.search("лисиця");

console.log(index);
// Виведе: 13 (індекс, де починається слово "лисиця")
автор: Bond

У цьому прикладі, користувач вводить рядок та підрядок для пошуку. Після натискання кнопки "Шукати", скрипт використовує метод search() для знаходження підрядка в рядку. Результат - позиція першого входження - виводиться на екран. Цей приклад демонструє використання search() для пошуку в рядках, дозволяючи користувачам взаємодіяти з веб-сторінкою динамічно.

автор: Bond

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

// Визначення вихідного рядка
let text = "Швидка коричнева лисиця перестрибнула через ледачого собаку.";

// Створення регулярного виразу для пошуку слова "ЛИСИЦЯ" (незалежно від регістру)
let regex = /лисиця/i;

// Пошук за допомогою регулярного виразу
let position = text.search(regex);

console.log(position);
// Виведе: 13 (індекс, де починається слово "лисиця", незалежно від регістру)
автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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