取出地址中的查询参数案例

227 阅读1分钟

请求串:

http://127.0.0.1:9000?username=jack&pwd=123 取出请求串中的查询参数,将查询参数封装为对象


首先我们先将地址以字符串的形式取出来 str ="http://127.0.0.1:9000?username=jack&pwd=123"; 然后使用split()函数将字符串进行分割。

我们能够看出字符串中有一个“?”,我们可以将?后的内容先取出来 str.split("?")[1],再将取出来的字符串“&”前后进行分割,将其保存到一个数组中去。

然后我们对数组进行遍历,取出其每一项。我们可以看出每一项都是以“=”进行分割的。“=”前面是对象里面的属性名,“=”后面是对象里面的属性值。我们再次用split()函数将属性名和属性值进行分割。

注意: 我们通过arr1[0]得到属性名,arr1[1]得到属性值。我们不能直接将obj.arr1[0]=arr1[1];因为这样做是将属性值赋值给属性名,并不是我们想要的。我们应该先取出属性名,找出对应其的属性值。即:
obj[ arr1[0]]=arr1[1];

然后我们将对象输出就可以了。具体代码如下

<script>
  str ="http://127.0.0.1:9000?username=jack&pwd=123";

  var str = "http://127.0.0.1:9000?username=jack&pwd=123";
  var arr = str.split("?")[1].split("&");  
  console.log(arr);
  var obj ={};

  arr.forEach(function(item){
    var arr1 = item.split("=");
    obj[ arr1[0]]=arr1[1];
  })
  console.log(obj);
</script>