We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Метод 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  

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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes1 Yes Yes Yes
flags No No1 — 49 No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes
flags No No No4 — 49 No No No

Зауваги щодо 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,