JavaScriptの正規表現

JavaScript で正規表現を利用する場合の記述方法です。正規表現オブジェクトの作成方法、メソッドを使ってマッチした文字列を取得したり置換を行う方法、そして JavaScript で利用可能なオプション(フラグ)について解説します。

※ JavaScript を使った正規表現の詳細な使い方については「JavaScript入門」の中の「JavaScript正規表現」を参照されてください。

(Last modified: )

正規表現オブジェクトの作成

JavaScript で正規表現オブジェクトを作成するには、正規表現リテラルを使用するか RegExp コンストラクタを使用します。

/パターン/
/パターン/フラグ
new RegExp(/パターン/)
new RegExp(/パターン/, 'フラグ')

具合的には次のように記述します。

let regex1 = /apple/;
let regex2 = /apple/i;
let regex3 = new RegExp(/apple/);
let regex4 = new RegExp(/apple/, 'i');

RegExp コンストラクタを使用する場合はパターンを文字列として指定することもできます。

let regex1 = new RegExp('apple');
let regex2 = new RegExp('apple', 'i');

各種メソッドの利用

JavaScript で文字列がパターンにマッチしているかどうか調べたり、置換を行うためのメソッドとして次の 6 種類が用意されています。

let regex = /apple/;
let str = 'I like apple';

// 文字列が正規表現とマッチするかテストする
console.log(regex.test(str));
--> true

// 正規表現にマッチした文字列を取得する
let result1 = regex.exec(str);
console.log(result1[0]);
--> apple

// 正規表現にマッチした文字列のインデックスを取得する
console.log(str.search(regex));
--> 7

// 正規表現にマッチしたすべての文字列を取得する
let result2 = str.match(regex);
console.log(result2[0]);
--> apple

// 文字列を正規表現を使った区切り文字で分割する
let strAry = str.split(/[ ]/);
console.log(strAry);
--> (3)?["I", "like", "apple"]

// 正規表現を使って指定した文字列を新しい文字列に置換する
let newstr = str.replace(/apple/, 'Apple');
console.log(newstr);
--> I like Apple

JavaScriptで使用できるオプション(フラグ)

JavaScript で用意されているオプション(フラグ)は次の 6 種類です。

フラグフラグ名説明
gGlobalパターンに一致するすべての文字列が対象となります。
iIgnoreCaseパターンで大文字と小文字を区別しなくなります。
mMultilineメタ文字の ^ や $ が各行の先頭と末尾にもマッチします。
sDotAllメタ文字の . が改行文字にもマッチします。
uUnicodeUnicode コードポイントが使用できます。
yStickylastIndex プロパティの位置からのみ一致するかどうかを判定します。

-- --

JavaScript で正規表現を利用する場合の記述方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。