javascript url参数二种方法

时间:2013-08-06 02:10:01  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:= getparameter("要获取的参数名", url地址)   var r = getparameter("age",url);     //测试输出,结果是:site=popasp教程  alert(r);   //根据得到的结果可以使用   var pname = r.split("=")[0]; //获取参数名   var pvalue = r.split...
  正文:

不用循环纯用正则实现从 url 中取参数的值。取代循环的核心技术是字符串的 replace() 方法可以用函数作第二参数,按用户定义的方式去替换。
//若有此参数名但无值,则返回空字符串;若无此参数名,返回 undefined。

//调用方法:var 变量名 = getparameter("要获取的参数名", url地址)  
var r = getparameter("age",url);  
 
//测试输出,结果是:site=popASP/ target=_blank class=infotextkey>asp教程 
alert(r);  
//根据得到的结果可以使用  
var pname = r.split("=")[0]; //获取参数名  
var pvalue = r.split("=")[1]; //获取参数值  
 
//测试输出:  
alert("参数名:" + pname + "nn" + "参数值:" + pvalue);  
 
//其他实际应用:  
//可以根据需要,配合以下方法实现自己要实现的功能;  
//var hostname = location.hostname; //获取当前域名(不包含http://)  
//var localurl = location.href;   //获取当前完整的url地址信息(包含http://,域名,路径,具体文件和全部传递参数)  
//var referurl = document.referrer; //获取上一页完整的url信息(包含http://,域名,路径,具体文件和全部传递参数) 

 

var getarg = function(argname)
{
var str = location.href;
var submatch;
//先从 url 中取出问号和井口与之间的查询字符串,如从 http://www.snowpeak.org/testjs(第二电脑网http://www.002pc.com).htm?a1=v1&a2=&a3=v3#anchor 中截出 a1=v1&a2=&a3=v3。
//问号是模式的特殊字符,所以要写成 ?;井号可有可无,所以模式结尾是 #?
if (submatch = str.match(/?([^#]*)#?/))
{
//取到捕捉的子匹配形如 a1=v1&a2=&a3=v3,在前面加个 & 做成规则的 &a1=v1&a2=&a3=v3 便于下一步替换
var argstr = '&'+submatch[1];
//做个替换用的函数,把找到的每组形如 &a1=v1 替换成 a1:"v1", 这样的对象定义用的属性声明
var returnpattern = function(str)
{
//$1 和 $2 代表捕捉到的第1个和第2个子匹配,必须用在字符串里
return str.replace(/&([^=]+)=([^&]*)/, '$1:"$2",');
}
//执行一个全局的正则替换,第二参数就是刚才定义的替换函数,把 a1=v1&a2=&a3=v3 替换成 a1:"v1",a2:"",a3:"v3",
argstr = argstr.replace(/&([^=]+)=([^&]*)/g, returnpattern);
//最后再执行一个对象的声明,需要形如 var retvalue = {a1:"v1",a2:"",a3:"v3"}; 的对象声明,而刚才替换完的字符串结尾还有个逗号,把结尾的逗号用 substr 截掉即可
eval('var retvalue = {'+argstr.substr(0, argstr.length-1)+'};');
//现在就得到了一个对象,url 中每个参数名是其属性名,参数值是对应的属性值
return retvalue[argname];
}
}
//测试
document.write('a1='+getarg('a1')+', a2='+getarg('a2')+', a3='+getarg('a3'));

下面利用正则处理方法

function geturlparam(name) {
var reg = new regexp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null)
return unescape(r[2]);
return null;
}
javascript url参数二种方法》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/JavaScript/25883.html


关于《javascript url参数二种方法》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td