somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Javascript】正規表現のオプション指定

正規表現のマッチングの際に、オプションを追加することができます。追加すると、挙動が変わり便利になるときがありますのでメモしておきます。

オプション

オプションには以下の3つがあります。

  • g
  • i
  • m

g:global

全体にマッチするようになります。全体にマッチするようになるため、戻り値の配列の要素がマッチした数だけ増えます。

i:ignoreCase

英字の大文字小文字を無視してマッチするようになります。正確には、ギリシャ文字なども無視するようですが、試していません。

m:multiLine

対象の文字列が複数行の場合、行ごとにマッチングするかどうかを判定できるようになります。今までのオプションは、割とメジャーなので知っていましたが、これははじめてみました。具体例は以下のとおりです。

var multi_line = "abc\nabc"

改行を含む文字列があります。これに対して「^a.*c$」aで始まってcで終わるマッチングをかけても、マッチしません。オプションを指定していない場合、全体の行頭行末が対象になり、「.」は改行以外の任意の一文字とマッチするためです。オプションを指定している場合は、行ごとになるので、2つマッチすることになります。

指定方法

/パターン/オプション、または、RegExpオブジェクト生成時に第二引数に文字列としてオプションを渡します。