Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

JavaScript Dictionary

  1. Home
  2. JavaScript Dictionary
  3. String .match() / matchAll() / search()

String .match() / matchAll() / search()

Use string methods to search with regular expressions. match() and matchAll() return the matched results, while search() returns the position of the match.

Syntax

// Returns information about the pattern match.
var result = "string".match(regexp);

// Returns an iterator of all matches with full details.
var results = "string".matchAll(regexp);

// Returns the index of the first match.
var index = "string".search(regexp);

Method List

MethodDescription
string.match(regexp)Returns the match results as an array. Without the g flag, it returns the first match along with any capture groups. With the g flag, it returns all matches as an array. Returns null if no match is found.
string.matchAll(regexp)Returns all matches with detailed information using a g-flagged regular expression. Since capture group contents are included, you get more detail than using match() with the g flag.
string.search(regexp)Returns the index of the first match as a number. Returns -1 if no match is found.

Sample Code

// Basic usage of match()
var text = "The phone number is 090-1234-5678";
var result = text.match(/\d{2,4}-\d{4}-\d{4}/);
console.log(result[0]); // Outputs '090-1234-5678'.

// Use match() with the g flag to get all matches.
var colors = "red blue green";
var matches = colors.match(/[a-z]+/g);
console.log(matches); // Outputs '["red", "blue", "green"]'.

// Using match() with capture groups
var dateText = "Today is 2026-03-15";
var dateResult = dateText.match(/(\d{4})-(\d{2})-(\d{2})/);
console.log(dateResult[0]); // Outputs '2026-03-15'. The full matched string.
console.log(dateResult[1]); // Outputs '2026'. The first capture group.
console.log(dateResult[2]); // Outputs '03'. The second capture group.
console.log(dateResult[3]); // Outputs '15'. The third capture group.

// Use matchAll() with the g flag to get capture groups for every match.
var log = "Error: E001, Warning: E002, Error: E003";
var iterator = log.matchAll(/E(\d{3})/g);
for (var entry of iterator) {
	console.log(entry[0] + " -> Code: " + entry[1]); // Gets both the full match and the capture group.
}

// Use search() to get the position of a match.
var sentence = "JavaScript is a fun language";
console.log(sentence.search(/fun/)); // Outputs '16'. The starting index of the match.
console.log(sentence.search(/Python/)); // Outputs '-1'. No match was found.

Overview

string.match() is a string method that returns regex match results as an array. Its behavior differs significantly based on the g flag: without the g flag, it returns detailed information including capture group contents; with the g flag, it returns only an array of matched strings, and capture group information is lost.

string.matchAll() retrieves all matches with capture group information using a g-flagged regular expression. Since it provides all capture group contents that match() with the g flag cannot, it is useful when you need to extract individual data from multiple matches.

string.search() is a lightweight method that returns only the position of the match, making it suitable when you just need to know whether something matches and where. To search using methods on the regular expression object itself, see regexp.test() / exec().

Browser Compatibility

Chrome Chrome
49+
Supported in all versions
Firefox Firefox
57+
Supported in all versions
Safari Safari
18+
Supported in all versions
Edge Edge
80+
11 or earlier ×
IE IE
11+
3 or earlier ×
Opera Opera
48+
3 or earlier ×
iOS Safari iOS Safari
18+
Supported in all versions
Android Browser Android Browser
37+
4 or earlier ×
Chrome Android Chrome Android
36+
17 or earlier ×
Firefox Android Firefox Android
79+
3 or earlier ×

If you find any errors or copyright issues, please .