js将地址参数转成json对象

1. 所谓的url参数,也就是地址栏中“?”之后的内容

2. 例子 + 分析

(1)获取地址栏“?”之后的内容

// 直接获取的(获取?之后的内容)
var search = window.location.search;  // 例如:"?userName=cyq&age=24&sex=f"
// 写死的地址
var href = "http://www.cyqzy.com?userName=cyq&age=24&sex=f";
var ksbz = href.indexOf("?");
// 截取字符串的三种方式,返回结果:userName=cyq&age=24&sex=f
var hrefStr = href.substr(ksbz+1);  // 参数(start,length)
var hrefStr2 = href.substring(ksbz+1);  // 参数(start,end),返回结果不包括end
var hrefStr3 = href.slice(ksbz+1);  // 参数(start,end), 返回结果不包括end


(2)方法一(返回json对象)

var splitStr = hrefStr.split("&");  // 返回结果:["userName=cyq", "age=24", "sex=f"]
var urlObj = {}  // 等价于 var urlObj = new Object()
for(var i = 0; i < splitStr.length; i++){
  urlObj[splitStr[i].split("=")[0]] = splitStr[i].split("=")[1];
}
console.log(urlObj) // 返回结果:Object {userName: "cyq", age: "24", sex: "f"}


(3)方法二(获取参数值)

var name = "age";  // name指的是要取的属性名称,比如username或者age或者sex
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var res = hrefStr.match(reg);
if (res != null){
  console.log(res);//["&age=24&", "&", "24", "&", index: 12, input: "userName=cyq&age=24&sex=f"]
  console.log(res[2]); // 24
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值