JavaScriptの正規表現
JavaScriptで正規表現を扱うには2つの方法があります。
1つ目は正規表現リテラル
を使用する方法、2つ目はRegExp
オブジェクトを使用する方法です。
- ※ 正規表現については、正規表現ページをご覧ください。
正規表現リテラル
正規表現リテラルはスラッシュでパターンを囲うことで使用することができます。
/パターン/
【例】
JavaScript
var str = 'abcdefg123456',
matches1 = str.match(/ab+c123/);
// 変数に一度格納することも可能
var pattern = /ab+c123/,
matches2 = str.match(/ab+c123/);
また、最後の/(スラッシュ)の後には、g
、i
、m
のフラグが指定できます。
フラグ | 説明 |
---|---|
g | Globalの頭文字を取ったもので、繰り返し検索するフラグです。 |
i | Ignore caseの頭文字を取ったもので、大文字・小文字のどちらも検索するフラグです。 |
m | Multiple linesの頭文字を取ったもので、複数行に対して検索するフラグです。 |
【例】
JavaScript
var str = 'abcdefgABCDEFG123456_abcdefgABCDEFG123456',
matches = str.match(/ab+c123/gi);
RegExpオブジェクト
RegExpオブジェクトは第一引数にパターンを指定し、new演算子で正規表現リテラルを生成します。
正規表現の一部として扱いたい変数がある場合などで役に立ちます。
なお、RegExpオブジェクトの第一引数で指定するパターンに/(スラッシュ)は不要です。
【例】
JavaScript
var reg = new RegExp('ab+c123');
// 変数を追加
var addPattern = '_sample[0-9]+',
pattern = new RegExp('ab+c123' + addPattern);
RegExpオブジェクトについても、g、i、mのフラグが第二引数で指定できます。
【例】
JavaScript
var str = 'abcdefgABCDEFG123456_abcdefgABCDEFG123456',
pattern = new RegExp('ab+c123', 'gi'),
matches = str.match(reg);