Baseline Widely available
The search()
method of String
values executes a search for a match between a regular expression and this string, returning the index of the first match in the 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: "!"
Syntax Parameters
regexp
A regular expression object, or any object that has a Symbol.search
method.
If regexp
is not a RegExp
object and does not have a Symbol.search
method, it is implicitly converted to a RegExp
by using new RegExp(regexp)
.
The index of the first match between the regular expression and the given string, or -1
if no match was found.
The implementation of String.prototype.search()
doesn't do much other than calling the Symbol.search
method of the argument with the string as the first parameter. The actual implementation comes from RegExp.prototype[Symbol.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[Symbol.search]()
.
When you want to know whether a pattern is found, and also know its index within a string, use search()
.
RegExp.prototype.test()
method, which returns a boolean.String.prototype.match()
or RegExp.prototype.exec()
.The following example searches a string with two different regex objects to show a successful search (positive value) vs. an unsuccessful 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
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3