>> JavaScript入門トップに戻る

正規表現【変数による指定】


今回は正規表現のマッチングにおいて、変数を利用する方法を説明します。
前回までの方法は、match関数に直接正規表現を書いて実行していました。
ですが、これはあまりスマートな方法ではありませんよね?
引数で渡した正規表現の文字列をそのままmatch関数に渡せたら、
毎回自由に正規表現を変更できるので便利ですよね?
その方法をご紹介します。

まず、正規表現のオブジェクトであるRegExpオブジェクトというものを生成します。
このオブジェクトのコンストラクタには、正規表現とオプションが指定できます。
つまりこのコンストラクタの第一引数に、このチェック関数の仮引数strを渡して、
さらに仮引数optionを第二引数に渡すことで、思い通りのRegExpオブジェクトが生成できます。
↓コードはこんな感じです。

function CheckTest2(str,option)
{
	//RegExpオブジェクトを作成
    var temp = new RegExp(str,option);
    
    string="あいうえお123";
    
    //生成したRegExpオブジェクトをmatch関数の引数に指定
    var mat = string.match(temp);

	alert(mat[0]);
}


生成したRegExpオブジェクトはmatch関数の第一引数に指定します。
これで今までと同じようにmatch関数が使えます。

↑押してみてください。あいうえお、だけが表示されましたよね?
ちなみに、CheckTest2関数は
CheckTest2('.{5}','gi');
こう呼び出しました。
.が任意の一文字
{5}ということは直前の文字が5文字
つまり、最初から5文字分がマッチして、「あいうえお」が表示されたというわけです。

これが引数に変数を利用して、正規表現を利用する方法です。
ちなみに、
function test(str){
var string="aiueo";
string.match(str)
}
と書いて、match関数に正規表現の文字列を指定することもできます。
が、この方法はオプションの指定ができません。
ですのでオプションを使う場合は上記の方法を使う必要があるということです。

今回の説明は以上です。
次回は正規表現のreplace関数について説明します。



>> 【正規表現【replace関数】】に進む
>> JavaScript入門トップに戻る