This page was translated from English by the community.Learn more and join the MDN Web Docs community.
RegExp.prototype[@@search]()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2016 г..
Метод[@@search]() выполняет поиск совпадения между регулярным выражениемthis и строкой.
In this article
Синтаксис
regexp[Symbol.search](str)
Параметры
Возвращаемое значение
- integer
В случае успеха,
[@@search]()вернёт индекс первого совпадения регулярного выражения внутри строки. В противном случае, он вернёт -1.
Описание
Этот метод вызывается внутреннее вString.prototype.search(). Например, два следующих примера вернут один и тот же результат.
"abc".search(/a/);/a/[Symbol.search]("abc");Этот метод существует для настройки поведения поиска в подклассахRegExp.
Примеры
>Прямой вызов
Этот метод можно использовать почти так же, какString.prototype.search(), за исключением другогоthis и другого порядка аргументов.
var re = /-/g;var str = "2016-01-02";var result = re[Symbol.search](str);console.log(result); // 4Используя@@search в подклассах
ПодклассRegExp может быть перезаписан с помощью метода[@@search]() для изменения поведения.
class MyRegExp extends RegExp { constructor(str) { super(str); this.pattern = str; } [Symbol.search](str) { return str.indexOf(this.pattern); }}var re = new MyRegExp("a+b");var str = "ab a+b";var result = str.search(re); // String.prototype.search calls re[@@search].console.log(result); // 3Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-regexp.prototype-%symbol.search%> |