MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

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

Синтаксис

str.search(regexp)

Параметри

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

Вертає

Індекс початку першого збігу між рядком та переданим регулярним виразом; якщо збігу не знайдено, вертає значення -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.
Living Standard  

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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
flagsNoNo(Yes) — 49NoNoNo
FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
flagsNoNoNoNoNoNoNo

Зауваження щодо 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,