String.prototype.search()

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

Спробуйте його в дії

Синтаксис

search(regexp)

Параметри

regexp

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

Якщо параметр regexp не є об'єктом RegExp і не має методу Symbol.search, то він неявно перетворюється на RegExp за допомогою new RegExp(regexp).

Повернене значення

Індекс першого збігу вмісту рядка з регулярним виразом, або -1 — якщо збігу знайдено не було.

Опис

Реалізація String.prototype.search() сама по собі є дуже простою: вона лишень викликає метод Symbol.search переданого аргументу зі своїм рядком як першим параметром. Фактична реалізація надходить з RegExp.prototype[Symbol.search]().

Позначка g виразу regexp не впливає на результат search(), і пошук завжди відбувається так, ніби властивість lastIndex регулярного виразу має значення 0. Більше інформації про логіку search() дивіться на сторінці RegExp.prototype[Symbol.search]().

Коли треба знати, чи був знайдений патерн, а також індекс збігу в рядку, слід використовувати search().

  • Якщо треба знати лише те, чи збіг існує, слід використовувати метод test(), який повертає булеве значення.
  • Якщо потрібен сам текст, що дає збіг, слід використовувати String.prototype.match() або RegExp.prototype.exec().

Приклади

Наступний приклад шукає збіг з двома різними регулярними виразами для ілюстрації різниці між успішним пошуком (додатне значення) та неуспішним (-1)

const str = "hey JudE";
const re = /[A-Z]/;
const reDot = /[.]/;
console.log(str.search(re)); // повертає значення 4 — індекс першої великої літери "J"
console.log(str.search(reDot)); // повертає -1 — не може знайти розділовий знак '.'

Специфікації

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
search
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 4
Opera Full support 4
Safari Full support 1
WebView Android Full support 1
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Deno Full support 1.0
Node.js Full support 0.10.0
flags
Нерекомендоване Нестандартне
Chrome No support Ні
Edge No support Ні
Firefox No support 1 –  49
Internet Explorer No support Ні
Opera No support Ні
Safari No support Ні
WebView Android No support Ні
Chrome Android No support Ні
Firefox for Android No support 4 –  49
Opera Android No support Ні
Safari on iOS No support Ні
Samsung Internet No support Ні
Deno No support Ні
Node.js No support Ні

Дивіться також