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 相关文章推荐
JavaScript中的History历史对象
Jan 16 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
Jun 10 Javascript
jquery显示loading图片直到网页加载完成的方法
Jun 25 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
又一款js时钟!transform实现时钟效果
Aug 15 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
jquery设置css样式的多种方法(总结)
Feb 21 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
js仿微信抢红包功能
Sep 25 Javascript
javascript实现贪吃蛇游戏(娱乐版)
Aug 17 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
如何做到多笔资料的同步
2006/10/09 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
php中session与cookie的比较
2015/01/27 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
jQuery 方法大全方便学习参考
2010/02/25 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
对javascript继承的理解
2016/10/11 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
vue实现分页组件
2020/06/16 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现马耳可夫链算法实例分析
2015/05/20 Python
Python中functools模块函数解析
2017/03/12 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
python正则表达式之对号入座篇
2018/07/24 Python
Django后台管理系统的图文使用教学
2020/01/20 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
初婚初育证明范本
2014/11/24 职场文书
狂人日记读书笔记
2015/06/30 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
在python中读取和写入CSV文件详情
2022/06/28 Python