主要是自己做个记录,方便查询,闲话不多说了,直接正文啦
1.使用的正则
var reg = /([^?=&]+)=([^?=&]+)/g,
2.处理的类似字符串
var url = "http://www.xxx.com?type=book&id=11";
3.使用
var obj = {};
var result;
while(result = reg.exec(url)){
obj[result[1]] = result[2];
}
console.log(obj); // 打印输出查看即可
4.代码整合
var reg = /([^?=&]+)=([^?=&]+)/g,
url = "http://www.xxx.com?type=book&id=11",
obj = {},
result;
while(result = reg.exec(url)){
obj[result[1]] = result[2];
}
或者
url.replace(reg, function(){
var args = arguments;
obj[args[1]] = args[2];
})
console.log(obj);
如果不适用正则的话,可以使用字符串分割,也能达到相应的效果
var n = str.indexOf('?');
var str1 = str.substr(n+1); // 截取到?后面的字符串 type=book&id=11
var arr = str1.split('='); // 调用split()方法,以 ‘&’作为分隔符 ,得到 ['type=book','id=11']
然后遍历数组,再次以 '='进行分割即可