String.prototype.match()

概要

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

構文

str.match(regexp)

引数

regexp
正規表現オブジェクト (RegExp) 。RegExp オブジェクトではないオブジェクト obj が渡された場合、new RegExp(obj) による RegExp オブジェクトへの暗黙的な変換が行われます。

詳細

正規表現が g フラグを含んでいない場合、 regexp .exec( string ) と同じ結果を返します。

正規表現が g フラグを含んでいる場合、マッチのすべてを含む 配列 を返します。

The returned Array has an extra input property, which contains the regexp that generated it as a result. In addition, it has an index property, which represents the zero-based index of the match in the string.

注記

  • 文字列が 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'] になっています。

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

Contributors to this page: teoli, ethertank, Potappo, Mgjbot
最終更新者: teoli,
サイドバーを隠す