请写一个javascript函数parseQueryString,他的用途是吧url参数解析为一个对象,如:

var url = “http://www.test.com/index.php?key0=0&key1=1&key2=2”

function parseQueryString(str){
    var tempStr = str.slice( str.lastIndexOf('?')+1 );//获取查询字符串
    // 可以写成tempStr = str.split('?')[1]
    var tempArr = tempStr.split('&'); //分割成数组
 
    var len = tempArr.length;
    var index,
        val,
        temp,
        obj = {};
    for(var i =0;i<len;i++){
        temp = tempArr[i].split('=');//将tempArr中每个元素在分割成数组['key0','0']
        index = decodeURIComponent(temp[0]);
        val = decodeURIComponent(temp[1]);
        obj[index] = val;
    }
 
    return obj;
}
var url = "http://www.taobao.com/index.php?key0=0&key1=1&key2=2";
console.log(parseQueryString(url));
function parseQueryString(url){
	// url = http://www.test.com/index.php?key0=0&key1=1&key2=2
	var reg = /[?&][^?&]+=[^?&]+/g;
	// arr = ['?key0=0','&key1=1','&key2=2']
	var arr = url.match(reg); //返回数组,数组元素是匹配到的元素,没有匹配到则返回[]
	var obj = {};  //作为返回值的
 
	if(arr){
		arr.forEach(function(item){
			var tempArr = item.substring(1).split('=');
			var index = decodeURIComponent(tempArr[0]);
			var val = decodeURIComponent(tempArr[1]);
			obj[index] = val;
		});
	}
	return obj;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值