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

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

作者: 英俊又可爱XD | 来源:发表于2018-01-31 19:02 被阅读0次

需求: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月更新好少,赶紧凑一篇。

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/bxmlzxtx.html