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[@@search]().

Позначка g виразу regexp не впливає на результат search(), і пошук завжди відбувається так, ніби властивість lastIndex регулярного виразу має значення 0. Більше інформації про логіку search() дивіться на сторінці RegExp.prototype[@@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
Deprecated Non-standard
Chrome No support No
Edge No support No
Firefox No support 1 –  49
Internet Explorer No support No
Opera No support No
Safari No support No
WebView Android No support No
Chrome Android No support No
Firefox for Android No support 4 –  49
Opera Android No support No
Safari on iOS No support No
Samsung Internet No support No
Deno No support No
Node.js No support No

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