概要
正規表現に対する文字列 のマッチングの際に、そのマッチ結果を得るために使われます。
構文
str.match(regexp)
引数
regexp
- 正規表現オブジェクト (RegExp) 。RegExp オブジェクトではないオブジェクト
obj
が渡された場合、new RegExp(obj)
による RegExp オブジェクトへの暗黙的な変換が行われます。 -
返り値
- 配列
- 全てのマッチを含む配列及び括弧内で捕獲された結果の配列、又はマッチが見つからなかった場合はnullを返します。
詳細
正規表現が g
フラグを含んでいない場合、regexp .exec(string )
と同じ結果を返します。
正規表現が g
フラグを含んでいる場合、マッチのすべてを含む 配列 を返します。
返された配列には結果を発生するのに使用された入力プロパティとストリング内のマッチを表す0ベースのインデックスプロパティも含まれています。
注記
- 文字列が
regexp
という正規表現にマッチするかどうかを知る必要がある場合、regexp .test(string )
を使用してください。 - 一番最初に見つけたマッチだけが欲しい場合、代わりに
regexp .exec(string )
を使用した方が良いかもしれません。 - See §15.5.4.10 of the ECMA-262 specification.
例
例: match
の使用
以下の例において、match
は "Chapter
" 、それに続く1 つ以上の数字、それに続く 0 回以上の小数点と数字、を見つけるために使われています。正規表現が i
フラグを含む場合、大文字と小文字の違いは無視されます。
var str = "For more information, see Chapter 3.4.5.1"; var re = /(chapter \d+(\.\d)*)/i; var found = str.match(re); document.write(found);
これは、Chapter 3.4.5.1,Chapter 3.4.5.1,.1 を含む配列を返します。
"Chapter 3.4.5.1
" は、 一番最初のマッチと、(Chapter \d+(\.\d)*)
で記憶された 1 番目の値です。
".1
" は、(\.\d)
で記憶された 2 番目の値です。
例: match
での グローバル (global) フラグ と 大文字と小文字の違いを無視する (ignore case) フラグの使用
以下の例は、グローバル (global) フラグ と 大文字と小文字の違いを無視する (ignore case) フラグの使用のデモです。
A から E までと、a から e までの文字のすべてが、それぞれ、配列の要素の 1 つとして返ります。
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var regexp = /[A-E]/gi; var matches_array = str.match(regexp); document.write(matches_array);
matches_array
は、['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
になっています。
仕様書
Specification | Status | Comment |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | 標準 | Initial definition. Implemented in JavaScript 1.2. |
ECMAScript 5.1 (ECMA-262) String.prototype.match の定義 |
標準 | |
ECMAScript 2015 (6th Edition, ECMA-262) String.prototype.match の定義 |
標準 | |
ECMAScript 2017 Draft (ECMA-262) String.prototype.match の定義 |
ドラフト |
ブラウザ互換性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (有) | (有) | (有) | (有) | (有) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (有) | (有) | (有) | (有) | (有) | (有) |
Firefox-specific notes
- Starting with Gecko 27 (Firefox 27 / Thunderbird 27 / SeaMonkey 2.24), this method has been adjusted to conform with the ECMAScript specification. When
match()
is called with a global regular expression, theRegExp.lastIndex
property (if specified) will be reset to0
(バグ 501739). - Starting with Gecko 39 (Firefox 39 / Thunderbird 39 / SeaMonkey 2.36), the non-standard
flags
argument is deprecated and throws a console warning (バグ 1142351). - Starting with Gecko 47 (Firefox 47 / Thunderbird 47 / SeaMonkey 2.44), the non-standard
flags
argument is no longer supported in non-release builds and will soon be removed entirely (バグ 1245801). - Starting with Gecko 49 (Firefox 49 / Thunderbird 49 / SeaMonkey 2.46), the non-standard
flags
argument is no longer supported (バグ 1108382).