1. 程式人生 > >獲取URL中的引數和對應值,以鍵值對方式返回

獲取URL中的引數和對應值,以鍵值對方式返回

根據題意,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、獲取引數與對應值部分
var paraStr=url.split("?")[1];
3、結合字元“&”將各個引數分離
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)