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

—— 此篇开始 ——


什么是查询字符串 

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

        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))

 结果:


—— 此篇完 —— 

猜你喜欢

转载自blog.csdn.net/m0_55868872/article/details/126024891