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值來打印數組對
應的值
