.match()
正規表現によってマッチする文字列があれば、その文字列を取得します。
文法
str.match(regexp);
マッチした結果を含む配列が返されるか、またはマッチするものが無ければ、nullが返されます。
引数 | 説明 |
---|---|
regexp |
正規表現オブジェクトを指定します。
もし、正規表現オブジェクトでは無いものが渡されると、
new RegExp(obj) を使用することで、暗黙的にRegExp(正規表現)に変換します。
|
説明
正規表現がg
フラグを含まない場合、
RegExp.exec(str)と同じ結果を返します。
返される配列は追加のinput
プロパティを持ち、それには解析された元の文字列が含まれます。
加えて、マッチした文字列の0基準のインデックスを表すindex
プロパティも持ちます。
正規表現がg
フラグを含む場合、このメソッドは全てのマッチを含む配列を返します。
マッチするものが無い場合、nullが返されます。
RegExpも参照
-
文字列が正規表現
RegExp
にマッチするのか確認だけをしたい場合は、 RegExp.test(str)を使用することが出来ます。 - 最初のマッチだけを見つけたい場合は、 代わりにRegExp.exec(str)を使用することをお勧めします。
例
matchの使用例
下記の例ではmatch
は、1つまたは複数の数値文字が後に続き、
その数値文字の後に小数点と数値文字のセットが0回または複数回続く、
"Chapter"を見つけるために使用されています。
この正規表現はフラグi
を含み、これは大文字・小文字の違いを無視します。
var str = "For more information, see Chapter 3.4.5.1";
var re = /(chapter \d+(\.\d)*)/i;
var found = str.match(re);
console.log(found);
// ["Chapter 3.4.5.1", "Chapter 3.4.5.1", ".1"]を出力
// インデックス0の"Chapter 3.4.5.1"は1つ目のマッチです。
// インデックス1の"Chapter 3.4.5.1"は、(Chapter \d+(\.\d)*)の外側の括弧によって取得される1つ目の値です。
// インデックス2の".1"は、(\.\d)の括弧によって取得される2つ目の値です。
例: g(global)とi(ignore)フラグを使用したmatch
下記は、globalとignoreのフラグをmatchで使用した例になります。 A~E、a~eの全ての文字が、それぞれ配列の要素となって返されます。
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);
console.log(matches_array);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
仕様
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ |
機能 | Android | Chrome for Android |
Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
関連項目
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。