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

Синтаксис

str.search(regexp)

Параметри

regexp
Об'єкт регулярного виразу. Якщо передати значення value іншого типу, його буде зведено до RegExp за допомогою оператора new RegExp(value).

Вертає

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

Опис

Метод search() використовується тоді, коли треба не лише знати, чи містить рядок відповідну послідовність, а й з'ясувати, в якому саме місці вона починається. Натомість можно скористатися методом RegExp.prototype.test(), що вертає boolean, якщо треба з'ясувати лише наявність такої послідовності.
Ще детальнішу інформацію про результат пошуку (коштом нижчої швидкодії) можна отримати за допомогою метода match() або RegExp.prototype.exec().

Приклади

Використання search()

В цьому прикладі наведено успішний пошук (метод вертає невід'ємне значення):

var str = "Красно дякую, панове!";

// Шукаємо послідовність із шести рядкових (маленьких) літер.
var pattern = /[а-я]{6}/g;
console.log(str.search(pattern));  // вертає 14, що є індексом літери «п»

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

var str = "Щиро вітаю, друже мій!";
var pattern = /[.]/g;
console.log(str.search(pattern));  // вертає -1

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

Специфікація Статус Коментар
ECMAScript 3rd Edition (ECMA-262) Standard Початкова виознака, запроваджено у JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'String.prototype.search' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.search' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'String.prototype.search' in that specification.
Draft  

Підтримка веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
flags
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox No support 1 — 49IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android No support 4 — 49Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No

Legend

Full support  
Full support
No support  
No support
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

Зауваги щодо Gecko

  • Реалізація search() до Gecko 8.0 містила помилку; коли виклик здійснювався без параметрів, або зі значенням undefined, метод шукав рядок 'undefined', замість порожнього рядка (себто послідовності нульової довжини). В новіших версіях це виправлено: виклики 'a'.search() та 'a'.search(undefined) тепер вертають 0, як і належить.
  • З версії Gecko 39 (Firefox 39 / Thunderbird 39 / SeaMonkey 2.36), нестандартний аргумент з прапорцями визнано застарілим, тож виклик метода з таким аргументом друкує відповідне попередження в консолі (bug 1142351).
  • З версії Gecko 47 (Firefox 47 / Thunderbird 47 / SeaMonkey 2.44), нестандартний аргумент з прапорцями не підтримується в проміжних збірках й невдовзі буде цілком видалений (bug 1245801).
  • З версії Gecko 49 (Firefox 49 / Thunderbird 49 / SeaMonkey 2.46), нестандартний аргумент з прапорцями не підтримується (bug 1108382).

Див. також

Мітки документа й учасники

Зробили внесок у цю сторінку: asmforce, GeekEdem
Востаннє оновлена: asmforce,