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 相关文章推荐
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
Apr 12 Javascript
可以支持多中格式的JS键盘
May 02 Javascript
javascript延时加载之defer测试
Dec 28 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
Jun 06 Javascript
B/S模式项目中常用的javascript汇总
Dec 17 Javascript
JavaScript设计模式经典之工厂模式
Feb 24 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
JS实现Cookie读、写、删除操作工具类示例
Aug 28 Javascript
vue-cli监听组件加载完成的方法
Sep 07 Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 Javascript
使用vue实现多规格选择实例(SKU)
Aug 23 Javascript
低门槛开发iOS、Android、小程序应用的前端框架详解
Oct 16 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错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
Python入门教程之运算符与控制流
2016/08/17 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
浅谈python中的占位符
2017/11/09 Python
numpy自动生成数组详解
2017/12/15 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
python调用webservice接口的实现
2019/07/12 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
研究生导师推荐信
2014/09/06 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
聘任书的格式及模板
2019/10/28 职场文书