Javascriptで正規表現を扱う方法は正規表現リテラルとRegExpの2つある。
下記のようにmatch関数を使う。正規表現はクォーテーションで括らず、「/~/」ではさんで、そのまま記述する(正規表現リテラル)。
var str = '123Abc';
var ret = str.match(/[A-Z]/i);
match関数の戻り値はtrue/falseではない。 マッチした場合、マッチした最初の文字列が返却され、マッチしない場合、nullが返却される。例えば上記のサンプルの場合、戻り値は"A"となる("123Abc"全てが戻されるわけではない)。
またオプションとして以下の指定が可能。複数組み合わせて使用することもできる。
オプション | 意味 |
---|---|
i | 大文字と小文字を区別しない。 |
g | 複数回マッチさせる |
m | 複数行に対して検索させる(^と$が改行する毎に効いてくれる) |
これもmatch関数を使うが、matchの引数にはRegExpオブジェクトを渡す。正規表現はRegExpに渡す。正規表現リテラルではないため、正規表現はクォーテーションで括る。
var str = '123Abc';
var reg = new RegExp('[A-Z]', 'i');
var ret = str.match(reg);
RegExpの第二引数にはオプションを指定する。指定できる値は正規表現リテラルの場合と同様(i, g, m)。
また、戻り値も正規表現リテラルの場合と同様。