JavaScriptの正規表現

広告

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

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

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

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

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。