String.prototype.search()
Метод 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 (ECMA-262) The definition of 'String.prototype.search' in that specification. |
Living Standard |
Підтримка веб-переглядачами
BCD tables only load in the browser
Зауваги щодо 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).