JavaScriptの正規表現

JavaScriptで正規表現を扱うには2つの方法があります。
1つ目は正規表現リテラルを使用する方法、2つ目はRegExpオブジェクトを使用する方法です。

  • ※ 正規表現については、正規表現ページをご覧ください。

正規表現リテラル

正規表現リテラルはスラッシュでパターンを囲うことで使用することができます。

/パターン/

【例】

JavaScript

var str      = 'abcdefg123456',
    matches1 = str.match(/ab+c123/);

// 変数に一度格納することも可能
var pattern  = /ab+c123/,
    matches2 = str.match(/ab+c123/);

また、最後の/(スラッシュ)の後には、gimのフラグが指定できます。

フラグ 説明
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);

JavaScript逆引きリファレンス一覧へ戻る