js-獲取url參數值
今天碰到要在一個頁面獲取另外一個頁面url傳過來的參數,一開始很本能的想到了用 split(「?」)這樣一步步的分解出需要的參數。
喜歡的朋友可以測試下,希望對大家有所幫助!
js方法一:正則分析法,指定參數名獲取值。
function getQueryString(name){
var reg =new RegExp('(^|&)'+name+'=([^&]*)(&|$)','i');
var r = window.location.search.substr(1).match(reg);
if(r !=null){
return unescape(r[2]);
}
return null;
Advertisements
}
// 這樣調用:
// http://orzhtml.github.io?a=1&b=2&c=3
console.log(getQueryString("a"));
console.log(getQueryString("b"));
console.log(getQueryString("c"));
結果截圖:
下面舉一個例子:
若地址欄URL為:abc.html?id=123&url=http://orzhtml.github.io
那麼,但你用上面的方法去調用:alert(getQueryString("url"));
則會彈出一個對話框:內容就是 http://orzhtml.github.io
Advertisements
如果用:alert(getQueryString("id"));那麼彈出的內容就是 123 啦;
當然如果你沒有傳參數的話,比如你的地址是 abc.html 後面沒有參數,那強行輸出調用結果有的時候會報錯:
所以我們要加一個判斷 ,判斷我們請求的參數是否為空,首先把值賦給一個變數:
var myurl= getQueryString("url");
if(myurl != null && myurl.toString().length>1) {
alert(myurl);
}
js方法二:獲取所有參數這樣就不會報錯了,結果返回始終會是一個對象!
function GetRequest(){
var url = location.search;//獲取url中"?"符后的字串
var theRequest ={};
if(url.indexOf("?")!=-1){
var str = url.substr(1);
strs = str.split("&");
for(var i =0; i < strs.length; i ++){
theRequest[strs[i].split("=")[0]]= unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
// 這樣調用
// http://orzhtml.github.io?a=4&b=5&c=6
var Request = {};
Request = GetRequest();
console.log(Request);
console.log(Request['a']);
console.log(Request['b']);
console.log(Request['c']);
結果截圖:
本文內容均屬個人原創作品,轉載此文章須附上出處及原文鏈接。
加關注,定時推送,互動精彩多,若你有更好的見解,歡迎留言探討!