Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

String.prototype.match()

BaselineWidely available

Thematch() method ofString values retrieves the result of matching this string against aregular expression.

Try it

const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";const regex = /[A-Z]/g;const found = paragraph.match(regex);console.log(found);// Expected output: Array ["T", "I"]

Syntax

js
match(regexp)

Parameters

regexp

A regular expression object, or any object that has aSymbol.match method.

Ifregexp is not aRegExp object and does not have aSymbol.match method, it is implicitly converted to aRegExp by usingnew RegExp(regexp).

If you don't give any parameter and use thematch() method directly, you will get anArray with an empty string:[""], because this is equivalent tomatch(/(?:)/).

Return value

AnArray whose contents depend on the presence or absence of the global (g) flag, ornull if no matches are found.

  • If theg flag is used, all results matching the complete regular expression will be returned, but capturing groups are not included.
  • If theg flag is not used, only the first complete match and its related capturing groups are returned. In this case,match() will return the same result asRegExp.prototype.exec() (an array with some extra properties).

Description

The implementation ofString.prototype.match doesn't do much other than calling theSymbol.match method of the argument with the string as the first parameter. The actual implementation comes fromRegExp.prototype[Symbol.match]().

For more information about the semantics ofmatch() when a regex is passed, seeRegExp.prototype[Symbol.match]().

Examples

Using match()

In the following example,match() is used to find"Chapter" followed by one or more numeric characters followed by a decimal point and numeric character zero or more times.

The regular expression includes thei flag so that upper/lower case differences will be ignored.

js
const str = "For more information, see Chapter 3.4.5.1";const re = /see (chapter \d+(\.\d)*)/i;const found = str.match(re);console.log(found);// [//   'see Chapter 3.4.5.1',//   'Chapter 3.4.5.1',//   '.1',//   index: 22,//   input: 'For more information, see Chapter 3.4.5.1',//   groups: undefined// ]

In the match result above,'see Chapter 3.4.5.1' is the whole match.'Chapter 3.4.5.1' was captured by(chapter \d+(\.\d)*).'.1' was the last value captured by(\.\d). Theindex property (22) is the zero-based index of the whole match. Theinput property is the original string that was parsed.

Using global and ignoreCase flags with match()

The following example demonstrates the use of the global flag and ignore-case flag withmatch(). All lettersA throughE anda throughe are returned, each its own element in the array.

js
const str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";const regexp = /[a-e]/gi;const matches = str.match(regexp);console.log(matches);// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

Using named capturing groups

In browsers which support named capturing groups, the following code captures"fox" or"cat" into a group namedanimal:

js
const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";const capturingRegex = /(?<animal>fox|cat) jumps over/;const found = paragraph.match(capturingRegex);console.log(found.groups); // {animal: "fox"}

Using match() with no parameter

js
const str = "Nothing will come of nothing.";str.match(); // returns [""]

Using match() with a non-RegExp implementing[Symbol.match]()

If an object has aSymbol.match method, it can be used as a custom matcher. The return value ofSymbol.match becomes the return value ofmatch().

js
const str = "Hmm, this is interesting.";str.match({  [Symbol.match](str) {    return ["Yes, it's interesting."];  },}); // returns ["Yes, it's interesting."]

A non-RegExp as the parameter

When theregexp parameter is a string or a number, it is implicitly converted to aRegExp by usingnew RegExp(regexp).

js
const str1 =  "All numbers except NaN satisfy <= Infinity and >= -Infinity in JavaScript.";const str2 =  "My grandfather is 65 years old and My grandmother is 63 years old.";const str3 = "The contract was declared null and void.";str1.match("number"); // "number" is a string. returns ["number"]str1.match(NaN); // the type of NaN is the number. returns ["NaN"]str1.match(Infinity); // the type of Infinity is the number. returns ["Infinity"]str1.match(-Infinity); // returns ["-Infinity"]str2.match(65); // returns ["65"]str3.match(null); // returns ["null"]

This may have unexpected results if special characters are not properly escaped.

js
console.log("123".match("1.3")); // [ "123" ]

This is a match because. in a regex matches any character. In order to make it only match specifically a dot character, you need to escape the input.

js
console.log("123".match("1\\.3")); // null

Specifications

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.match

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp