獲取URL中的引數和對應值,以鍵值對方式返回
阿新 • • 發佈:2019-02-05
根據題意,URL可分為三類。即無引數,有一個引數,有多個引數。
http://www.jiangxiaobai.com
http://www.jiangxiaobai.com?name=xiaobai
http://www.jiangxiaobai.com?name=xiaobai&age=17
引數跟在字元“?”之後,引數之間用“&”隔開,引數名和值則用“=”連線
解決方法如下
1、判斷URL中是否含有字元“?”。無,則結束並提示不包含引數和對應值;有,獲取引數和對應值部分再進行拆分
url.indexOf("?")>-1 // 判斷是否含有字元“?”
2、獲取引數與對應值部分
3、結合字元“&”將各個引數分離var paraStr=url.split("?")[1];
paraItems=paraStr.split("&");
4、遍歷步,驟3的結果,對每一項再進行拆分,得到引數和對應值,最後以鍵值對的形式存放
通過window.location獲取當前頁面URL,window.location.search 獲取以“?”開頭的引數名和對應值拼接而成的字串,
處理方式大同小異,在此不做贅述
var url="www.baidu.com?name=baibai"; function getPara(url){ if(url.indexOf("?")>-1){ var result=[]; var paraStr=url.split("?")[1]; var paraItems=paraStr.split("&"); for(var i=0;i<paraItems.length;i++){ var paraKey=paraItems[i].split("=")[0]; var paraValue=paraItems[i].split("=")[1]; result.push({ key:paraKey, value:paraValue }) } console.log(result) }else{ console.log("該URL中不含引數") } } getPara(url)