→
パターンに従ったテキストを検索する正規表現オブジェクトを生成します。
正規表現について詳しく知りたい方は の を参考にしてください。
リテラル記法:
コンストラクター記法:
ファクトリ記法:
pattern | 正規表現のテキストです(パターン)。
ES5 以降では、別な RegExp オブジェクトまたはリテラルにすることができます(後者は 2 つの RegExp コンストラクター記法のみ)。パターンには を含めることができるため、文字列リテラルよりも広い範囲の値に一致させることができます。 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
flags | 省略可。以下のように機能するフラグで、文字列です。
または、パターン用のオブジェクトが提供された場合は flags の文字列は他のオブジェクトのフラグを置き換えます(そして lastIndex は 0 にリセットされます)(ES2015以降)¶詳細不明。 flags は以下の値を任意の組み合わせが可能です:
|
RegExp オブジェクトを生成するのにリテラル記法とコンストラクターの2つの方法があります。
以下の3つの式は、同じ正規表現を生成するものです:
var RE=/ab+c/i;
var RE=new RegExp(/ab+c/, 'i'); // リテラル表記¶
var RE=new RegExp('ab+c', 'i'); // コンストラクター
リテラル記法は、式が評価されるときに正規表現をコンパイルした結果となります。正規表現が変化しない場合はリテラル記法を使用してください。例えば、ループで使用される正規表現を構築するためにリテラル記法を使用した場合、正規表現は反復ごとに再コンパイルされません。
正規表現オブジェクトのコンストラクター、例えば new RegExp('ab+c') は、正規表現の実行時にコンパイルを行います。コンストラクター関数は、正規表現のパターンが変化することがわかっている場合や、パターンがわからず、ユーザー入力などの別のソースから取得している場合に使用してください。
g フラグ:
RE=/a/g; D="abcabc".match(RE); //=[object]:a,a //0=[string]:a //1=[string]:a
i フラグ:
RE=/a/i; D="ABCabc".match(RE); //=[object]:A //0=[string]:A //index=[number]:0 //input=[string]:ABCabc //groups=[undefined]:undefined RE=/a/gi; D="ABCabc".match(RE); //=[object]:A,a //0=[string]:A //1=[string]:a
m フラグ:
RE=/^a/g; //「^」先頭を意味する D="abc\rabc".match(RE); //=[object]:a //0=[string]:a RE=/^a/gm; //「^」先頭を意味する D="abc\rabc".match(RE); //=[object]:a,a //0=[string]:a //1=[string]:a
s フラグ:
RE=/a.b/g; D="a\rba.b".match(RE); //=[object]:a.b //0=[string]:a.b RE=/a.b/sg; D="a\rba.b".match(RE); //=[object]:a b,a.b //0=[string]:a b //1=[string]:a.b
u フラグ:
RE=/\u3042/u; D="あいう".match(RE); //=[object]:あ //0=[string]:あ //index=[number]:0 //input=[string]:あいう //groups=[undefined]:undefined RE=/\u3042/; D="あいう".match(RE); //=[object]:あ //0=[string]:あ //index=[number]:0 //input=[string]:あいう //groups=[undefined]:undefined S="Приключения Алисы в Стране чудес"; RE=/([\u0000-\u0019\u0021-\uFFFF])+/ug; D=S.match(RE); //=[object]:Приключения,Алисы,в,Стране,чудес //0=[string]:Приключения //1=[string]:Алисы //2=[string]:в //3=[string]:Стране //4=[string]:чудес S="Приключения Алисы в Стране чудес"; RE=/([\u0000-\u0019\u0021-\uFFFF])+/g; D=S.match(RE); //=[object]:Приключения,Алисы,в,Стране,чудес //0=[string]:Приключения //1=[string]:Алисы //2=[string]:в //3=[string]:Стране //4=[string]:чудес
変わりないようだが。
y フラグ:
RE=/a/y; D=RE.exec('abcabc'); //=[object]:a //0=[string]:a //index=[number]:0 //input=[string]:abcabc //groups=[undefined]:undefined D=RE.lastIndex; //=[number]:1 D=RE.exec('abcabc'); //=[object]:null D=RE.lastIndex; //=[number]:0 RE.lastIndex=3; D=RE.exec('abcabc'); //=[object]:a //0=[string]:a //index=[number]:3 //input=[string]:abcabc //groups=[undefined]:undefined D=RE.lastIndex; //=[number]:4