正则-匹配获取url参数
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值來打印數組對
應的值
總結
以上是生活随笔為你收集整理的正则-匹配获取url参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡催收电话不接可以吗?想清后果再做决
- 下一篇: 中行学生卡怎么注销?这几个事项要注意!