node.js中的querystring.parse方法使用说明


Posted in Javascript onDecember 10, 2014

方法说明:

将字符串转成对象。说白了其实就是把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 相关文章推荐
JS 实现完美include载入实现代码
Aug 05 Javascript
对之前写的jquery分页做下升级
Jun 19 Javascript
JQuery中两个ul标签的li互相移动实现方法
May 18 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
Jan 08 Javascript
Javascript之String对象详解
Jun 08 Javascript
AngularJS轻松实现双击排序的功能
Aug 30 Javascript
jQuery插件ajaxFileUpload异步上传文件
Oct 19 Javascript
js获取指定字符前/后的字符串简单实例
Oct 27 Javascript
AngularJs上传前预览图片的实例代码
Jan 20 Javascript
JSON数据中存在单个转义字符“\”的处理方法
Jul 11 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
JavaScript 链表定义与使用方法示例
Apr 28 Javascript
node.js中的url.resolve方法使用说明
Dec 10 #Javascript
node.js中的url.parse方法使用说明
Dec 10 #Javascript
node.js中的url.format方法使用说明
Dec 10 #Javascript
node.js中的console.assert方法使用说明
Dec 10 #Javascript
深入分析JSONP跨域的原理
Dec 10 #Javascript
node.js中的console.dir方法使用说明
Dec 10 #Javascript
node.js中的console.error方法使用说明
Dec 10 #Javascript
You might like
PHP 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
详解js闭包
2014/09/02 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中max函数用法实例分析
2015/07/17 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
2020/02/14 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
电大自我鉴定
2013/10/27 职场文书
园林技术个人的自我评价
2014/01/08 职场文书
便利店投资创业计划书
2014/02/08 职场文书
县级文明单位申报材料
2014/05/23 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
2015年度保密工作总结
2015/04/24 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
vscode内网访问服务器的方法
2022/06/28 Servers