1.根据指定参数名获取参数值
A页面向连接到B页面的url为:
http://www.189dg.com/ajax/sms_query.ashx?action=smsdetail&sid=22&stime=2014-06-27&etime=2014-06-27
我们要得根据参数名获取到参数值,如根据action可以获取到smsdetail
B页面里:
我们可以通过 var url = window.location;获取到A页面传输过来的url。
var sid = GetParam(url, "sid");//这样我们就获取到参数名为sid的值,即22.
//获取参数的方法
//url为穿过来的链接,id为参数名
function GetParam(url, id) {
url =
url+ "";
regstr = "/(\\?|\\&)" + id + "=([^\\&]+)/";
reg = eval(regstr);//eval可以将 regstr字符串转换为 正则表达式
result =
url.match(reg);//匹配的结果是:result[0]=?sid=22
result[1]=sid
result[2]=22。所以下面我们返回result[2]
if (result && result[2]) {
return result[2];
}
}
2.获取所有参数保存到数组
var url = "http://127.0.0.1/e/action/ShowInfo.php?classid=9&id=2";
function parse_url(_url){
var pattern = /(\w+)=(\w+)/ig;
var parames = {};
url.replace(pattern, function(a, b, c){
parames[b] = c;
});
return parames;
}
var parames = parse_url(url);
alert(parames['classid'] + ", " + parames['id']);
</script>
解析:
这是最关键的.当replace匹配到classid=9时.那么就用执行function(a,b,c);其中a的值
为:classid=9,b的值为classid,c的值为9;(这是反向引用.因为在定义正则表达式的时候有
两个子匹配.)
然后将数组的key为classid的值赋为9;然后完成.
再继续匹配到id=2;此时执行function(a,b,c);其中a的值为:id=2,b的值为id,c的值为2;然
后将数组的key为id的值赋为2.
调用:
var parames = parse_url(url);
alert(parames['classid'] + ", " + parames['id']);//最后打印.根据key值来打印数组对
应的值