A-A+
	Javascript获取url参数值方法总结
在js中要获取url参数与参数值的方法很简单,我们也可以直接在js中获取请求的参数的值,通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为?id=001,再对获取的字符串进行处理.
实例1,代码如下:
- 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;
 - }
 
调用方法:
alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));
如:getUrlParam("id")。
这个方法通过构造一个正则表达式来匹配到需要查询的url参数,location.search是获取到url中的查询字符串部分。这个方法的优点是简洁,缺点是每次都需要对字符串进行分析查找,多次查询同一个参数效率低下,所以有了下面这个方法。
获取url参考值方法二,代码如下:
- <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>
 
利用闭包和正则表达式实现,代码如下:
- var getUrlParam = function(){
 - var args = null;
 - return function(name){
 - if(args === null){
 - if(location.search == "") return "";
 - var queryArray = location.search.substring(1).split("&");
 - var i;
 - args = {};
 - for(i = 0;i < queryArray.length;i++){
 - var match = queryArray[i].match(/([^=]+)=([^=]+)/);
 - if(match !== null){
 - args[match[1]] = match[2];
 - }//xiaohuboke.com
 - }
 - }
 - return args[name] == undefined ? "" : args[name];
 - };
 - }();
 
这个方法利用了js的函数闭包,将url参数都保存在一个匿名函数里面的args变量中,而且除了通过getUrlParam外,任何方法都访问不到该变量,而且只有第一次获取url参数的时候才会分析url,以后就直接从变量args中读取.