--- title: String.prototype.search() slug: Web/JavaScript/Reference/Global_Objects/String/search tags: - JavaScript - Prototype - String - Довідка - Регулярний вираз translation_of: Web/JavaScript/Reference/Global_Objects/String/search ---
Метод search() здійснює пошук у рядку за вказаним регулярним виразом.
str.search(regexp)
regexpvalue іншого типу, його буде зведено до {{jsxref("RegExp")}} за допомогою оператора new RegExp(value).Індекс початку першого збігу між рядком та переданим регулярним виразом; якщо збігу не знайдено, вертає значення -1.
Метод search() використовується тоді, коли треба не лише знати, чи містить рядок відповідну послідовність, а й з'ясувати, в якому саме місці вона починається. Натомість можно скористатися методом {{jsxref("RegExp.prototype.test()")}}, що вертає boolean, якщо треба з'ясувати лише наявність такої послідовності.
Ще детальнішу інформацію про результат пошуку (коштом нижчої швидкодії) можна отримати за допомогою метода {{jsxref("String.prototype.match()", "match()")}} або {{jsxref("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
| Специфікація | Статус | Коментар |
|---|---|---|
| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Початкова виознака, запроваджено у JavaScript 1.2. |
| {{SpecName('ES5.1', '#sec-15.5.4.12', 'String.prototype.search')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES6', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ES6')}} | |
| {{SpecName('ESDraft', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.String.search")}}
search() до {{Gecko("8.0")}} містила помилку; коли виклик здійснювався без параметрів, або зі значенням {{jsxref("undefined")}}, метод шукав рядок 'undefined', замість порожнього рядка (себто послідовності нульової довжини). В новіших версіях це виправлено: виклики 'a'.search() та 'a'.search(undefined) тепер вертають 0, як і належить.