JavaScript

正規表現のフラグ【g,m,i】

この記事では正規表現のフラグについて解説します。

正規表現は/◯◯/gのような形で使われることが多いですが、このgのことをフラグと呼びます。

gの他にもm,i,u,yなどがあります。

正規表現のフラグの種類

『g』の使い方

最も見かけることの多いフラグは「g」です。

gは「該当する部分すべて」を検索してくれます。

var str1 = 'a12oj1589-ああ9go_33'
var result1_1 = str1.match(/[0-9]+/g);
console.log(result1_1);
// 結果
[ '12', '1589', '9', '33' ]

[0-9]+で0~9の数字の1回以上の繰り返しを検索します。

gがつくことで、検索条件に該当するすべての数字を抽出します。

補足:gなしの場合どうなるか

gをなしで使うと、どうなるのか見てみましょう。

var str1 = 'a12oj1589-ああ9go_33'
var result1_2 = str1.match(/[0-9]+/);
console.log(result1_2);
// 結果
[ '12' ]

上記のように出力されます。

gなしの場合「一番始めに該当した部分が抽出される」と覚えておきましょう。

『m』の使い方

続いてフラグ「m」を見てみましょう。

mは「複数行に対して検索」します。

var str2 = "1234\n567\n890";
var result2_1 = str2.match(/^567/m);
console.log(result2_1);
// 結果
[ '567' ]

上記のように、改行が入った場合にも検索を実行してくれます。

補足:mなしの場合どうなるか

var str2 = "1234\n567\n890";
var result2_2 = str2.match(/^567/);
console.log(result2_2);
// 結果
null

mを外すと、改行を含んだ場合の検索はされません。

『i』の使い方

フラグ「i」は「大文字・小文字」を区別しません。

実際に見てみましょう。

var str3 = "ABcdE";
var result3_1 = str3.match(/abcd/i);
console.log(result3_1);
// 結果
[ 'ABcd' ]

上記のように、iがつくと「abcd」に該当します。

補足:iなしの場合どうなるか

iなしの場合は大文字・小文字を区別するので、nullになります。

var str3 = "ABcdE";
var result3_2 = str3.match(/abcd/);
console.log(result3_2);
// 結果
null

『u』『y』について

uとyは高度な使い方になるので、ここでは割愛します。

正規表現のフラグを実際に触ってみよう

紹介した「g,m,i」の3つのフラグを実際に触って動かしてみましょう。


ウェブつくを支えてくれるスポンサー

  • この記事を書いた人
ウェブつく管理人

ウェブつく管理人

WEB制作の仕事をしています。より簡潔に、より分かりやすく解説していきたいと思い、サイトを運営しています。「読むのが苦にならないサイト」を目指しています。よろしくお願いします。

-JavaScript
-

© 2021 ウェブつく Powered by AFFINGER5