js獲取位址列的引數

螞蟻小編發表於2017-03-20

通過url地址可以傳遞引數,下面就是一段能夠實現此功能的程式碼例項和和大家做一下分享,希望能夠給需要的朋友帶來一定的幫助,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function getUrlParams(){
  var search = window.location.search;
  // 寫入資料字典
  var tmparray = search.substr(1, search.length).split("&");
  var paramsArray = new Array;
  if(tmparray != null){
    for (var i = 0; i < tmparray.length; i++) {
      var reg=/=/;
      var set1 = tmparray<i>.replace(reg, '&');
      var tmpStr2 = set1.split('&');
      var array = new Array;
      array[tmpStr2[0]] = tmpStr2[1];
      paramsArray.push(array);
    }
  }
  // 將引數陣列進行返回
  return paramsArray;
}

以上程式碼實現了我們的要求,下面就簡單介紹一下此功能的實現過程。

一.程式碼註釋:

1.function getUrlParams(){},宣告一個函式實現了獲取位址列引數功能。

2.var search = window.location.search,返回當前url的查詢部分,也就是url地址中問號(?)後面的部分。

3.var tmparray = search.substr(1, search.length).split("&"),使用substr()擷取查詢字串?後面的部分,然後用&作為分割符來分割被擷取後的字串,每一個陣列元素就是傳遞的引數和引數值。

4.var paramsArray = new Array,建立一個陣列物件,用來儲存傳遞的引數名稱和引數值,此陣列的元素也是一個陣列。

5.if(tmparray!=null),如果陣列存在。

6.for(var i=0;i<tmparray.length;i++){},遍歷陣列中的每一個元素。

7.var reg=/=/,能夠匹配等號的正規表示式。

8.var set1=tmparray.replace(reg,'&'),tmparray陣列的元素都是類似於["a=1","b=2"]這樣的結構,此段程式碼就是將每一個陣列項中的等號用&號替換。

9.var tmpStr2=set1.split('&'),生成一個新的陣列。

10.var array=new Array,建立一個陣列,此陣列的索引是引數名稱,陣列項的值就是引數值。

11.array[tmpStr2[0]]=tmpStr2[1],傳遞的引數名稱作為陣列索引,引數值作為陣列值。

12.paramsArray.push(array),將array物件作為陣列paramsArray的值。

二.相關閱讀:

1.location.search可以參閱location.search一章節。 

2.substr()函式可以參閱javascript substr()一章節。 

3.split()函式可以參閱javascript split()一章節。

4.replace()函式可以參閱正規表示式replace()函式一章節。 

5.push()函式可以參閱javascript push()一章節。

相關文章