node.js中的querystring.parse方法使用说明
方法说明:
将字符串转成对象。说白了其实就是把url上带的参数串转成数组对象。(看例子就知道咯)
语法:
querystring.parse(str,[sep],[eq],[options])
接收参数:
str 欲转换的字符串
sep 设置分隔符,默认为‘&'
eq 设置赋值符,默认为‘='
[options] maxKeys 可接受字符串的最大长度,默认为1000
例子:
querystring.parse('foo=bar&baz=qux&baz=quux&corge') //returns {foo:'bar',baz:['qux','quux'],corge:''}
源码:
//Parseakey=valstring. QueryString.parse=QueryString.decode=function(qs,sep,eq,options){ sep=sep||'&'; eq=eq||'='; varobj={}; if(!util.isString(qs)||qs.length===0){ returnobj; } varregexp=/\+/g; qs=qs.split(sep); varmaxKeys=1000; if(options&&util.isNumber(options.maxKeys)){ maxKeys=options.maxKeys; } varlen=qs.length; //maxKeys<=0meansthatweshouldnotlimitkeyscount if(maxKeys>0&&len>maxKeys){ len=maxKeys; } for(vari=0;i<len;++i){ varx=qs[i].replace(regexp,'%20'), idx=x.indexOf(eq), kstr,vstr,k,v; if(idx>=0){ kstr=x.substr(0,idx); vstr=x.substr(idx+1); }else{ kstr=x; vstr=''; } try{ k=decodeURIComponent(kstr); v=decodeURIComponent(vstr); }catch(e){ k=QueryString.unescape(kstr,true); v=QueryString.unescape(vstr,true); } if(!hasOwnProperty(obj,k)){ obj[k]=v; }elseif(util.isArray(obj[k])){ obj[k].push(v); }else{ obj[k]=[obj[k],v]; } } returnobj; };