javascript中获取地址url参数

在javascript中获取地址url参数是我们少用的一个东西,下面我来分享现在网络上常用的获取地址url参数办法,有需要的朋友可参考参考。

最快捷的js方法,代码如下:

function GetQueryString(name)   
{   
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");   
var r = window.location.search.substr(1).match(reg);   
if (r!=null) return unescape(r[2]); return null;   
}

URL的参数&参数名1=XXXX&参数名2=XXXX&参数名3=XXXX,代码如下:

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

后来又进入了改进,可兼容所有浏览器,代码如下:

// 获取地址栏的参数数组  
         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;  
         }  
   
         // 根据参数名称获取参数值  
         function getParamValue(name) {  
             var paramsArray = getUrlParams();  
             if (paramsArray != null) {  
                 for (var i = 0; i < paramsArray.length; i++) {  
                     for (var j in paramsArray[i]) {  
                         if (j == name) {  
                             return paramsArray[i][j];  
                         }  
                     }  
                 }  
             }  
             return null;  
         }

使用方法,带着2个参数name与year,代码如下:

http://localhost:8080/Default.aspx?Name=张三&Year=2013

你只需要,代码如下:

var Name = getParamValue("Name");
var Year = getParamValue("Year");

感觉是不是有点像php,asp这类的哦,上面js代码有点复杂正同我们利用jquery,如果想获取test,则可以引入插件后,用如下方法获取:

var test = $.query.get('test');

如果参数有多个相同的名称,则可以这样:

var arr = $.query.get('testy');

输出:

[ 值1 , 值2, 值3...]如果要获取多个相同名称中的某一个,可以这样:

var arrayElement = $.query.get('testy[1]');

原文来自http://www.xiariboke.com/design/2975.html