location.search獲取url傳遞引數程式碼例項

admin發表於2017-03-28

本章節的重點是location.search屬性的作用,它可以獲取url問號(?)和問號後面的部分,其實也就是傳遞引數的部分。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function GetQueryString(name){   
  var reg=new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"); 
  var r=window.location.search.substr(1).match(reg); 
  if(r!=null) return (r[2]); return null; 
}
var tid=GetQueryString("tid"); 
if(tid!=null){ 
  tid=decodeURIComponent(tid); 
  console.log(tid); 
}

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

1.function GetQueryString(name){},此函式可以獲取傳遞指定引數的值,name屬性是引數的名稱。

2.var reg=new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"),此正規表示式可以匹配一段具有指定引數名稱和對應引數值的一段字串,比如mod=viewthread&tid=13254,可以匹配mode=viewthread&或者tid=13254。3.var r=window.location.search.substr(1).match(reg),window.location.search可以獲取問號和問號以後的字串,window.location.search.substr(1)就是擷取問號以後的字串,然後使用正規表示式進行匹配。

4.if(r!=null) return (r[2]); return null,如果r不為空的話,那麼就返回陣列第三個元素的值,也就是第二個字表示式的值,也就是指定的引數值。

5.var tid=GetQueryString("tid"),獲取指定引數的值。

6.if(tid!=null),如果返回值不為null。

7.tid=decodeURIComponent(tid),對引數值進行解碼,因為引數值有編碼的可能。

二.相關閱讀:

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

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

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

4.decodeURIComponent()函式可以參閱javascript decodeURIComponent()一章節。

相關文章