目的
javascriptでGETパラメーターの解析をしましょうというものです。
PHPやJavaは利用できないシーンとかで、パラメーターを引き回したりする時に使っていました。
使い方
下記の関数をまずは用意します。
function getParams(){
var url = document.location.href;
if(url.match(/#/)){
url = RegExp.leftContext;
}
if(url.match(/\?/)){
var params = RegExp.rightContext;
}else{
return new Array();
}
var tmp = params.split('&');
var param = new Array();
var tmp2, key, val;
for(var i = 0; i < tmp.length; i++){
tmp2 = new Array();
key = '';
val = '';
tmp2 = tmp[i].split('=');
key = tmp2[0];
val = tmp2[1];
param[key] = val;
}
return param;
}
上記の関数を呼ぶことでGETパラメーターの値を簡単に取得できます。
よくリンクにページ内リンクの#がつくことがありますが、その場合はマッチした箇所の左側だけをURLと認識してます。
そのあとで?でsplitしてパラメーター部分を取り分けて、さらに&と=で分割するという処理をしてます。
例えば http://whizzy.co.jp?param1=hoo¶m2=bar というようなURLがあります。
そのURLで動かすjavascript内で
var params = getParams();
とすると、paramsという変数に各パラメーターが連想配列で入ってきます。
それ以降は各パラメーターの値にアクセスできます。
alert(params['param1']); // fooが表示される。
alert(params['param2']); // varが表示される。
もし使えそうな機会があればどうぞ。