某人要的将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 个子表达式相匹配的文本(如果有的话),以此类推。

相关资料:http://www.w3school.com.cn/js/jsref_exec_regexp.asp

posted on 2011-07-22 13:33  Lecaf  阅读(3059)  评论(0编辑  收藏  举报