如果给定一个网址,如何解析获得你想要的参数呢?
比如现在给定网址:http://taobao.com/list/?tag=news_enter&ac=wap&item_wrap=4&format=json;需要解析后得到:tag:news_enter、ac:wap、item_wrap:4、foemat:json这样的一组key-value值。
那我们如何去做呢?
首先我们可以看出我们想要的参数都是在‘?’后面,那我们可以用split方法将其分割。在问号后半部分我们的参数之间有‘&’,同样我们使用split方法将其分割;key-value值之间的‘=’同样也是用split方法;
接下来看代码部分:
function parseQueryString(url) {
var match = url.split('?')[1].split('#')[0]; //将分割?后面的字符串赋给match
var matches = match.split('&'); //将后面的以‘&’分割并以数组返回
var obj = {};
for(var i = 0; i < matches.length; i++){
var key = matches[i].split('=')[0]; // 将matches里面的参数再以’=‘细分,’=‘前的值为key,后面为value
var value = matches[i].split('=')[1];
obj[key] = value;
}
return obj;
}
利用console.log(parseQueryString('http://taobao.com/list/?tag=news_enter&ac=wap&item_wrap=4&format=json'));可以再chrome控制台看到我们想要的结果:
如有问题,请指出来,我会虚心接受。