关于与查询字符串相关的两种方法

—— 此篇开始 ——


什么是查询字符串 

我们把所有被引号包裹的内容都叫做字符串,因为字符串填充的内容不一样,我们做了一些细致的分类:

        1.全部由数字组成的:数字字符串: '123456789'

        2.带有html格式的字符串:html格式字符串: '<p>abcd</p>'

        3.查询字符串:格式key=value&key=value 例子:'name=zhangsan&password=123456&gender=男'

作用:常常用来做url查询参数的解析,在编程时我们往往需要把一个对象信息变成查询字符串格式,或者把查询字符串格式变成一个对象信息


把一个对象信息变成查询字符串

方法:由于对象内的每一个key和value,在查询字符串中都会出现,我们需要拿到对象内的每一个key和value,于是需要遍历对象,把拿到的内容组装成一个完整的字符串,把最后组装完毕的结果字符串中最后一个字符去掉,把转换好的结果当做返回值

代码:

function queryStringify(obj){
   var str = "" //存放查询字符串
   for(var k in obj){
      str += k + '=' + obj[k] + '&' //将遍历出来的数据拼接成"key=value&"的形式赋值给空字符串
   }
      str = str.slice(0,-1) //删除字符串末尾的"&"
      return str;
}

var obj = {
    name:'jack',
    age:18,
    gender:'男',
    classroom:2109
}

console.log (queryStringify(obj));

结果:

 


 把查询字符串变成一个对象信息

方法:明白这个查询字符串内需要有多少条信息,使用&把字符串分割,循环遍历切割好的数据,在每一条数据中,"="左边的是对象内的key,"="右边的是对象内的value,再次使用"="切割每一个小数据,最后向对象内填充

代码:

var str = 'name=jack&age=18&gender=男&classroom=2109'

function parseQueryString(s,b){
   var obj = {} //用来存放最终结果
   var arr = [] //用来存放用split()分割后的数据
   arr =  str.split('&') //将查询字符串通过"&"切割成5个数据
   arr.forEach(function(item){ //循环遍历数组
       var tmp = item.split('=') //将遍历出来的每一个数据通过"="切割
       var key = tmp[0] //将"="左边的数据赋值为key
       var value = tmp[1] 将"="右边的数据赋值为value
       obj[key] = value //填充对象
   });
   return obj;
}

console.log (parseQueryString(str))

 结果:


—— 此篇完 —— 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Twistedzs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值