String.prototype.match()

概要

正規表現に対する文字列 のマッチングの際に、そのマッチ結果を得るために使われます。

構文

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, the RegExp.lastIndex property (if specified) will be reset to 0 (バグ 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).

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: imanabu, lv7777, teoli, ethertank, Potappo, Mgjbot
 最終更新者: imanabu,