纯手工敲打, 详细的分步获取!!!^_^
例题 1:var url="http://baidu.com/item.html?a=1&b=2&c=&d=xxx&e";
目的: 就是把这个字符串从? 后边的数按照 key:value 的形式放在对象中 如:{a: "1", b: "2", c: "", d:"xxx", e: undefined}
- // 构造函数
- function getObj(url){
- var obj={}
- // 这点特别需要注意的, 用正则表达式, 先判断是否有? 存在
- if(/\?/.test(url)){
- //1 获取问号的索引
- var index=url.indexOf(?)
- //2 根据索引分分割后? 后边的字符串
- var Astr=url.substr(index+1)//a=1&b=2&c=&d=xxx&e
- //3 以 & 分割字符串转成数组
- var Aarr=Astr.split("&")//["a=1", "b=2", "c=", "d=xxx", "e"]
- //4 循环这个数组
- for(var i=0;i<Aarr.length;i++){
- var Cstr=Aarr[i]// a=1,b=2,c=,d=xxx
- //5 分割循环后的字符 例: a=1
- var Barr=Cstr.split("=") //["a","1"]
- //6 将数组 Barr[0],Barr[1] 分别赋值给数组的键和值
- obj[Barr[0]]=Barr[1]
- }
- }
- // 7 返回这个对象
- return obj
- }
- console.log(getObj(url))
来源: http://www.bubuko.com/infodetail-2545536.html