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 相关文章推荐
jquery跨域请求示例分享(jquery发送ajax请求)
Mar 25 Javascript
超棒的响应式布局jQuery插件Freetile.js
Nov 17 Javascript
Javascript中实现String.startsWith和endsWith方法
Jun 10 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
jquery调整表格行tr上下顺序实例讲解
Jan 09 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
Jun 08 Javascript
JS中微信小程序自定义底部弹出框
Dec 22 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
Jul 11 Javascript
vue props 单项数据流实例分享
Feb 16 Javascript
JavaScript canvas实现跟随鼠标移动小球
Feb 09 Javascript
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
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中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
javascript 函数速查表
2010/02/07 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
python中cPickle用法例子分享
2014/01/03 Python
python 多进程通信模块的简单实现
2014/02/20 Python
Python装饰器用法实例总结
2018/02/07 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
python文件读取失败怎么处理
2020/06/23 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
中学生在校期间的自我评价分享
2013/11/13 职场文书
教师绩效考核方案
2014/01/21 职场文书
个人担保书格式范文
2014/05/12 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
小学运动会开幕词
2015/01/28 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫