JavaScriptの正規表現関係2

2010年4月30日

以前、似たような記事を書いたが、さらに強化版も。

RegExpを使えばかなり柔軟に書く事が出来るので、その方法を四の五の能書きたれず実際のコードで紹介。

次のコードは、リファラからキーワードを取り出す方法。

//リファラ取得。なんでrefererではなく、referrerなんでしょうね。
var referrer = document.referrer;
//RegExpで対象文字列を設定。ここは正規表現可。
var nowurl = new RegExp( "q=" );

//q=という文字列が見つかったら。
if( referrer.match( nowurl ) )
{
//なんだか非効率ですがいろいろなパターンを表現するため、敢えて記述
     var result = referrer.match(/q=([^&]*)/);

//$1や$2などで、正規表現中の(~~)の値を取得出来ます。
     result = RegExp.$1;

//キーワードなので、+(つまり空白)は排除
     var keywords = result.split("+");

//キーワード一つ一つに関してループ開始。
     for( i=0; i<keywords.length; i++ )
     {
//日本語の場合もあるのでデコード
	key = decodeURI( keywords[i] );

//これで、/key/giというようになる。keyの部分は変数な点を留意
	var reg = new RegExp( key,"gi");

    }
}