JavaScriptの正規表現関係2

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


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");

}
}




コメントをどうぞ