Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-string.prototype.search

Совместимость с браузерами

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.search in core-js with fixes and implementation of modern behavior like Symbol.search support
  • Руководство по регулярным выражениям
  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API