js获取url参数值

今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。

后来想了一下,肯定会有更加简单的方法的!所以在网上找到了两个很又简单实用的方法,mark下

方法一:正则分析法

 

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;
}

这样调用:

alert(GetQueryString("参数名1"));

alert(GetQueryString("参数名2"));

alert(GetQueryString("参数名3"));

方法二:

<span style= "font-size: 16px;" ><Script language= "javascript" >
function  GetRequest() {
    var  url = location.search; //获取url中"?"符后的字串
    var  theRequest = new  Object();
    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;
}
</Script></span>

这样调用:

复制代码
<Script language="javascript">
var Request = new Object();
Request = GetRequest();
var 参数1,参数2,参数3,参数N;
参数1 = Request['参数1'];
参数2 = Request['参数2'];
参数3 = Request['参数3'];
参数N = Request['参数N'];
</Script>
function  GetRequest() {
     var  url = location.search; //获取url中"?"符后的字串
     var  theRequest = new  Object();
     if  (url.indexOf( "?" ) != -1) {
         var  str = url.substr(1);
         if  (str.indexOf( "&" ) != -1) {
             strs = str.split( "&" );
             for  ( var  i = 0; i < strs.length; i++) {
                 theRequest[strs[i].split( "=" )[0]] = unescape(strs[i].split( "=" )[1]);
             }
         } else  {
             theRequest[str.split( "=" )[0]] = unescape(str.split( "=" )[1]);
         }
     }
     return  theRequest;
}
 
注释:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。

你可能感兴趣的:(url)