说一下,查询字符串函数

每次看《javaScript高级程序设计》,都有意外的收获,哈哈哈,好久没有写东西了,原因就是各种坑啊,一言难尽,不说也罢,言归正传。

原来项目中遇到了获取location,href中问号后面的内容,自己也封装了一个方法.话不多说,直接上代码.

/**获取当前页面中url 中? 之后的内容(包括 ?) 返回的是对象*/
function getLocationStringArgs() {
  var url = location.search; //获取url中"?"符后的字串
  var theRequest = new Object();
  if (url.indexOf("?") != -1) {
    var str = url.substr(1);
    strs = str.split("&");
    for (var i = 0; i < strs.length; i++) {
      theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
    }
  }
  return theRequest;
}

  然后今天看书的时候,突然看到了书上也有一个方法,看着熟悉,也给写下来了,方便对比

      基本的思路就是,把loaction带问号的字符串截取一下,按照‘&’,转换成数组的形式,数组的每一项按照‘=’在分割成对象的key和value,最后返回该对象

  用法简单,就是没有进行编码,需要的,可以把key和value编码转化一下就好了~

function getLocationStringArgs() {
  var qs = (location.search.length > 0 ? location.search.substring(1) : '');
  args = {};
  items = qs.length ? qs.split('&') : [];
  item = null;
  name = null ; 
  value = null ; 
  i = 0;
  len = items.length;
  for( i = 0 ; i < len ; i++){
    item = items[i].split('=');
    name = decodeURIComponent(item[0]);
    value = decodeURIComponent(item[1]);
    if(name.length){
      args[name] = value;
    }
    return args;
  }

  上面一个是自己封装的,下面一个是《javaScript高级程序设计》上的,                                                                                                                                                                                                                                                                                                                       写下来,方便自己以后查看,需要的可以收藏一下~有什么不对的地方,欢迎大家指正批评。

既然选择了远方,便只顾风雨兼程
原文地址:https://www.cnblogs.com/wfqjcq/p/7563045.html