某人要的将url参数转换成对象的方法parseQueryString
某人需要将url参数转换成object对象,所以写了这么个东东。通过正则的exec()实现。
var parseQueryString = function( url ){
var reg_url =/^[^\?]+\?([\w\W]+)$/,
reg_para=/([^&=]+)=([\w\W]*?)(&|$)/g, //g is very important
arr_url = reg_url.exec( url ),
ret = {};
if( arr_url && arr_url[1] ){
var str_para = arr_url[1],result;
while((result = reg_para.exec(str_para)) != null){
ret[result[1]] = result[2];
}
}
return ret;
}
var url ="http://www.taobao.com/index.php?key0=0&key1=1&key2=&key3=http://www.g.cn?a=1&&b=2";
var obj = parseQueryString(url);
RegExpObject .exec(string)方法,如果不匹配返回null,如果匹配成功,返回一个array,array的第0个元素为正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推。