--- 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)
regexp
value
іншого типу, його буде зведено до {{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
, як і належить.