The search()
method executes a search for a match between a regular expression and this String
object.
str.search(regexp)
regexp
obj
is passed, it is implicitly converted to a RegExp
by using new RegExp(obj)
.The index of the first match between the regular expression and the given string; if not found, -1.
When you want to know whether a pattern is found and also its index in a string use search()
(if you only want to know if it exists, use the similar test()
method on the RegExp prototype, which returns a boolean); for more information (but slower execution) use match()
(similar to the regular expression exec()
method).
search()
The following example searches a string with 2 different regex objects to show a successful search (positive value) vs. an unsuccessful search (-1)
var str = "hey JudE"; var re = /[A-Z]/g; var re2 = /[.]/g; console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J" console.log(str.search(re2)); // returns -1 cannot find '.' dot punctuation
Specification | Status | Comment |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition. Implemented in 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 Latest Draft (ECMA-262) The definition of 'String.prototype.search' in that specification. | Living Standard |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | Yes | Yes | Yes | Yes | Yes | Yes |
flags |
No | No | Yes — 49 | No | No | No |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic support | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
flags |
No | No | No | No | No | No | No |
flags
was a non standard second argument only available in Gecko : str.search(regexp, flags)search()
was implemented incorrectly; when it was called with no parameters or with undefined
, it would match against the string 'undefined', instead of matching against the empty string. This is fixed; now 'a'.search()
and 'a'.search(undefined)
correctly return 0.flags
argument is deprecated and throws a console warning (bug 1142351).flags
argument is no longer supported in non-release builds and will soon be removed entirely (bug 1245801).flags
argument is no longer supported (bug 1108382).
© 2005–2018 Mozilla Developer Network and individual 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