String.prototype.search()
The search() method executes a search for a match between a regular expression and this String object.
Try it
Syntax
js
search(regexp)
Parameters
regexp-
A regular expression object, or any object that has a
Symbol.searchmethod.If
regexpis not aRegExpobject and does not have aSymbol.searchmethod, it is implicitly converted to aRegExpby usingnew RegExp(regexp).
Return value
The index of the first match between the regular expression and the given string, or -1 if no match was found.
Description
The implementation of String.prototype.search() itself is very simple — it simply calls the Symbol.search method of the argument with the string as the first parameter. The actual implementation comes from RegExp.prototype[@@search]().
The g flag of regexp has no effect on the search() result, and the search always happens as if the regex's lastIndex is 0. For more information on the behavior of search(), see RegExp.prototype[@@search]().
When you want to know whether a pattern is found, and also know its index within a string, use search().
- If you only want to know if it exists, use the
RegExp.prototype.test()method, which returns a boolean. - If you need the content of the matched text, use
match()orRegExp.prototype.exec().
Examples
Using search()
The following example searches a string with two different regex objects to show a successful search (positive value) vs. an unsuccessful search (-1).
js
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
Specifications
| Specification |
|---|
| ECMAScript Language Specification # sec-string.prototype.search |
Browser compatibility
BCD tables only load in the browser