String.search() Find a match with a regex
Last updated: 2026-10-13
String.search() Find a match with a regex
search finds the first match of a regex and returns its start index, or -1. It ignores the global flag g — use matchAll to get every match.
| Category | Strings |
|---|---|
| ES version | ES3 (1999) |
📝 Syntax
string.search(regexp);
⚙️ Parameters
| regexp | A regular expression; a string is coerced into one. |
|---|
Returns:Start index of the first match, or -1.
Mutates the original:No (returns a new value)
▶ Example
Edit the code, press Run, and see the result in the output panel:
Output:
20
0
-1
20
ℹ️ info It returns only an index, not the matched text — use match or exec for results.
⚠️ Warning The g flag has no effect on search (per spec) — unlike match. A common trap.
🌐 Browser support
| Browser | |||||
|---|---|---|---|---|---|
| String.search() | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v4 |
| Supported by all modern browsers | |||||
🏷️ Related String Methods
💡 Related Cases
More case studies coming soon — check back later.
📚 Related Tutorials
❓ FAQ
Qsearch vs indexOf?
Asearch accepts a regex (and flags); indexOf takes plain strings but is faster.
QWhy is search(/x/g) the same as search(/x/)?
AThe spec makes search ignore g; it always returns the first match. Use matchAll for all.
QHow do I get the matched text?
Asearch gives no match text — use str.match(/\d/) or /\d/.exec(str).