JavaScript 读 URL 参数改进版

《JavaScript权威指南》介绍的更简洁的取 URL 参数的方法,不用正则表达式,用一次循环。一次性返回一个对象的好处是只需要调用一次此函数,参数和值对可以存在一个对象里,以后再取其它参数的值就不用再调用此函数了,只要取对象的属性就行了。
function getArgs(){
var args = new Object( ); //声明一个空对象

var query = window.location.search.substring(1); // 取查询字符串,如从 http://www.snowpeak.org/testjs.htm?a1=v1&a2=&a3=v3#anchor 中截出 a1=v1&a2=&a3=v3。

var pairs = query.split("&"); // 以 & 符分开成数组

for(var i = 0; i < pairs.length; i++) {

var pos = pairs[i].indexOf('='); // 查找 "name=value" 对

if (pos == -1) continue; // 若不成对,则跳出循环继续下一对

var argname = pairs[i].substring(0,pos); // 取参数名

var value = pairs[i].substring(pos+1); // 取参数值

value = decodeURIComponent(value); // 若需要,则解码

args[argname] = value; // 存成对象的一个属性

}

return args; // 返回此对象

}

//调用:假如现在有个url="index.jsp?p1=111&p2=2222&p3=3333"

var ps = getArgs();
var p1value = ps["p1"]; //第一个参数值 等价表达方式 ps[0]
var p2value = ps["p2"]; //第二个参数值 等价表达方式 ps[1]
var p3value = ps["p3"]; //第三个参数值 等价表达方式 ps[2]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值