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加解密 脚本解密
Feb 22 Javascript
js+css实现增加表单可用性之提示文字
Jun 03 Javascript
一个网页标题title的闪动提示效果实现思路
Mar 22 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
May 07 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 Javascript
Uploadify上传文件方法
Mar 16 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
快速解决vue-cli不能初始化webpack模板的问题
Mar 20 Javascript
微信小程序显示倒计时功能示例【测试可用】
Dec 03 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
Dec 30 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 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 采集程序中常用的函数
2009/12/09 PHP
PHP常用数组函数介绍
2014/07/28 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python实现Logger打印功能的方法详解
2017/09/01 Python
简单了解Python中的几种函数
2017/11/03 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
python遍历路径破解表单的示例
2020/11/21 Python
python不同版本的_new_不同点总结
2020/12/09 Python
python 模块导入问题汇总
2021/02/01 Python
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
茶叶店创业计划书范文
2014/01/19 职场文书
产品推广策划方案
2014/05/10 职场文书
司法建议书范文
2014/05/13 职场文书
北京天坛导游词
2015/02/12 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
毕业设计工作总结
2015/08/14 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang