[@@search]()
method executes a search for a match between a
this
regular expression and a string.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
regexp[Symbol.search](str)
str
String
that is a target of the search.
[@@search]()
returns the index of the first match of the regular expression inside the string. Otherwise, it returns -1.
This method is called internally in
String.prototype.search()
. For example, the following two examples return the same result.
'abc'.search(/a/);
/a/[Symbol.search]('abc');
This method exists for customizing the search behavior in
RegExp
subclasses.
This method can be used in almost the same way as
String.prototype.search()
, except the different
this
and the different arguments order.
var re = /-/g; var str = '2016-01-02'; var result = re[Symbol.search](str); console.log(result); // 4
@@search
in subclasses
Subclass of
RegExp
can override
[@@search]()
method to modify the behavior.
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
| 规范 |
|---|
|
ECMAScript (ECMA-262)
The definition of 'RegExp.prototype[@@search]' in that specification. |
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@search
|
Chrome 50 | Edge 13 | Firefox 49 | IE No | Opera 37 | Safari 10 | WebView Android 50 | Chrome Android 50 | Firefox Android 49 | Opera Android 37 | Safari iOS 10 | Samsung Internet Android 5.0 | nodejs 6.0.0 |
完整支持
不支持
String.prototype.search()
RegExp.prototype[@@match]()
RegExp.prototype[@@replace]()
RegExp.prototype[@@split]()
RegExp.prototype.exec()
RegExp.prototype.test()
RegExp
RegExp.$1-$9
RegExp.input ($_)
RegExp.lastMatch ($&)
RegExp.lastParen ($+)
RegExp.leftContext ($`)
RegExp.prototype.dotAll
RegExp.prototype.flags
RegExp.prototype.global
RegExp.prototype.ignoreCase
RegExp.prototype.multiline
RegExp.prototype.source
RegExp.prototype.sticky
RegExp.prototype.unicode
RegExp.rightContext ($')
RegExpInstance.lastIndex
get RegExp[@@species]
Function
Object
Object.prototype.__defineGetter__()
Object.prototype.__defineSetter__()
Object.prototype.__lookupGetter__()
Object.prototype.__lookupSetter__()
Object.prototype.hasOwnProperty()
Object.prototype.isPrototypeOf()
Object.prototype.propertyIsEnumerable()
Object.prototype.toLocaleString()
Object.prototype.toSource()
Object.prototype.toString()
Object.prototype.valueOf()
Object.setPrototypeOf()