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: '' }
源码:
// Parse a key=val string.
QueryString.parse = QueryString.decode = function(qs, sep, eq, options) {
sep = sep || '&';
eq = eq || '=';
var obj = {};
if (!util.isString(qs) || qs.length === 0) {
return obj;
}
var regexp = /\+/g;
qs = qs.split(sep);
var maxKeys = 1000;
if (options && util.isNumber(options.maxKeys)) {
maxKeys = options.maxKeys;
}
var len = qs.length;
// maxKeys <= 0 means that we should not limit keys count
if (maxKeys > 0 && len > maxKeys) {
len = maxKeys;
}
for (var i = 0; i < len; ++i) {
var x = 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;
} else if (util.isArray(obj[k])) {
obj[k].push(v);
} else {
obj[k] = [obj[k], v];
}
}
return obj;
};相关阅读:
深入理解JavaScript系列(49):Function模式(上篇)
java实现的新浪微博分享代码实例
php通过strpos查找字符串出现位置的方法
用php守护另一个php进程的例子
mysql中order by与group by的区别
PHP处理数组和XML之间的互相转换
Win10 Mobile/PC预览版14387曝光:或为RTM候选版本
SQLite数据库安装及基本操作指南
Java中三种简单注解介绍和代码实例
oracle 11g em重建报唯一约束错误解决方法
php中__destruct与register_shutdown_function执行的先后顺序问题
Win10语音助手Cortana小娜搜索速度怎么优化?
AngularJS入门教程之迭代器过滤详解
红米手机抢购的js代码