php 解析 querystring,Node.js查询字符串querystring详解

查询字符串模块提供了解析和格式化工具URL查询字符串的API,本文将详细介绍关于Node.js查询字符串解析querystring的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一、querystring.parse(str[, sep[, eq[, options]]])

这个API将URL查询字符串解析为键和值的集合str:URL查询字符串

sep:标明字符串中用于划分键值对的符号,默认为“&”

eq:用以标明查询字符串中键和值之间的符号,默认为“=”

例子如下:const querystring = require('querystring');

const url = require('url');

var queryUrl="http://localhost:8888/bb?name=李浩&memo=helloworld&memo=helloC";

queryUrl=url.parse(queryUrl).query;

console.log(querystring.parse(queryUrl)) ;

----------------------------------------------------

// 输出 { name: '李浩', memo: [ 'helloworld', 'helloC' ] }

带参数的例子:const querystring = require('querystring');

const url = require('url');

var queryUrl="http://localhost:8888/bb?name==李浩*memo==helloworld*memo==helloC";

queryUrl=url.parse(queryUrl).query;

console.log(querystring.parse(queryUrl,'*','==')) ;

----------------------------------------------------

// 输出 { name: '李浩', memo: [ 'helloworld', 'helloC' ] }

二、querystring.stringify(obj[, sep[, eq[, options]]])

这个API从一个给定的对象中生成一个URL查询字符串,通过遍历对象“自己的属性”。obj为给定的对象

sep为键值对之间的分隔符,默认为“&”

eq为键和值之间的连接符号,默认为“=”

例子如下:const qs=require("querystring");

var obj={ name: '李浩', memo: [ 'helloworld', 'helloC' ] }

console.log(

qs.stringify(obj)

)

/*

输出 name=%E6%9D%8E%E6%B5%A9&memo=helloworld&memo=helloC;

API默认是对中文进行了编码,下面我们再说编码解码的API

*/

带参数的例子:const qs=require("querystring");

var obj={ name: '李浩', memo: [ 'helloworld', 'helloC' ] }

console.log(

qs.stringify(obj,'@','==')

)

输出 name==%E6%9D%8E%E6%B5%A9@memo==helloworld@memo==helloC;

相信应该看出了带参数和不带参数的区别了吧

三、querystring.unescape(str)

这个API是对URL查询字符串中的URL进行解码的,例如上面我们进行stringify操作的时候,中文就会被编码,那么中文在URL中的时候也会被解析为编码后的样子,这个API一般配合querystring.parse()使用

我们就拿上面中文出现编码的URL查询字符串来举例

例子如下:const qs = require("querystring");

var url = "name=%E6%9D%8E%E6%B5%A9&memo=helloworld&memo=helloC"

var normalStr = qs.unescape(url)

console.log(

qs.parse(normalStr)

)

//输出 { name: '李浩', memo: [ 'helloworld', 'helloC' ] }

四、querystring.escape(str)

这个API相当于就是querystring.unescape(str)的逆向操作了,把中文编码,常和querystring.stringify()连同使用var obj = { name: '李浩', memo: ['helloworld', 'helloC'] };

console.log(

qs.escape(

qs.stringify(obj)

)

)

// 输出 name%3D%25E6%259D%258E%25E6%25B5%25A9%26memo%3Dhelloworld%26memo%3DhelloC

//连同&和=一起编码了

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值