String.prototype.search()
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Метод search() значений String выполняет поиск совпадения между регулярным выражением и этой строкой, возвращая индекс первого совпадения в строке.
Попробуйте
const paragraph = "I think Ruth's dog is cuter than your dog!"; // Anything not a word character, whitespace or apostrophe const regex = /[^\w\s']/g; console.log(paragraph.search(regex)); // Expected output: 41 console.log(paragraph[paragraph.search(regex)]); // Expected output: "!"
Синтаксис
search(regexp)
Параметры
-
regexp -
Объект регулярного выражения или любой объект, имеющий метод
Symbol.search.Если
regexpне является объектомRegExpи не имеет методаSymbol.search, он неявно преобразуется вRegExpс использованиемnew RegExp(regexp).
Возвращаемое значение
Индекс первого совпадения между регулярным выражением и заданной строкой, или -1, если совпадение не найдено.
Описание
Реализация String.prototype.search() не делает ничего, кроме вызова метода Symbol.search аргумента с строкой в качестве первого параметра. Фактическая реализация исходит из RegExp.prototype[Symbol.search]().
Флаг g для regexp не влияет на результат search(), и поиск всегда происходит так, как если бы lastIndex регулярного выражения был равен 0. Дополнительную информацию о поведении search() см. в RegExp.prototype[Symbol.search]().
Когда вам нужно знать, найдена ли шаблон, а также знать его индекс в строке, используйте search().
- Если вам нужно только узнать, существует ли он, используйте метод
RegExp.prototype.test(), который возвращает булево значение. - Если вам нужно содержимое совпавшего текста, используйте
String.prototype.match()илиRegExp.prototype.exec().
Примеры
Использование search()
Следующий пример ищет строку с двумя разными объектами регулярных выражений, чтобы показать успешный поиск (положительное значение) и безуспешный поиск (-1).
const str = "hey JudE"; const re = /[A-Z]/; const reDot = /[.]/; console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J" console.log(str.search(reDot)); // returns -1 cannot find '.' dot punctuation
Спецификации
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
search |
1 |
12 |
1 |
4 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
См. также
- Polyfill of
String.prototype.searchincore-jswith fixes and implementation of modern behavior likeSymbol.searchsupport - Руководство по регулярным выражениям
String.prototype.match()RegExp.prototype.exec()RegExp.prototype[Symbol.search]()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search