js获取地址栏中传入的参数(字符串方法、正则表达式两种方式)

需求:js获取地址栏中传入的参数。
例如,浏览器地址栏中在’search’后面的值,将其转化为对象或直接取值。
http://localhost:3000/mobile/searchList.html?key=衣服

方法一:用字符串方法,循环数组取值

字符串方法:
  • 切割字符串 str.slice(n)
    传入不同个数的值操作不一样,详见:slice方法
  • 分割字符串为数组 str.split(" ");
    按照参数将字符串分割为多个字符串组成的数组,详见:split方法
代码实现:
function getData(search){ //传入关键字如search
//保存地址栏’search’后的字符串,并去掉第一个“?”符
var search = window.loction.search.slice(1);
//用“&”切分开为数组,每个成员格式为“key=value”
var data = search.split(‘&’);
//新建对象保存数据
var obj={};
//循环取出数组中的值来保存,将key与value分开并保存
for(var i =0, i<data.length; i++){
    var kv = data[i].split(‘=’);
    obj[kv[0]]=kv[1];
}
return obj;    //obj为最终参数构成的对象(JSON格式)
}


用正则表达式取值

直接取出来“search”后面name对应的值。
推荐用这个,比较简洁。

function getQueryString(name) { 
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 
  var r = window.location.search.substr(1).match(reg); 
  if (r != null) {  
    return unescape(r[2]); 
  } 
  return null; 
}

详细出处:js获取地址栏中传递的参数


2018.1.31
1月更新好少,赶紧凑一篇。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容