写一个获取当前url查询字符串中的参数【前端每日一题-3】

写一个获取当前url查询字符串中的参数

考点分析
  • url参数获取
  • 字符串截取
  • 字符串转数组
  • 或者单纯从正则方面考虑
实现

这是比较常规的实现方法,但是这里返回了所有参数的数据集合和单独获取某个参数的值

function getUrlParam(key) {
  let searchText = location.search.substring(1);
  let returnObj = {};
  searchText.split('&').map((item) => {
    let itemArr = item.split('=');
    returnObj[itemArr[0]] = decodeURIComponent(itemArr[1]);
  });
  if (key) return returnObj[key];
  return returnObj;
}
getUrlParam();
复制代码
正则表达式实现

这里主要有一个强调点是正则表达式中有变量,所以得采用正则表达式对象形式创建。

match 的返回

输出的是一个object对象,类似于数组,object对象第一个参数就是匹配成功的那个字符串,第二个参数是reg中第一个小括号里面的内容即(&),第三个参数是第二个小括号([^&]*)里面的,以此类推。

function getUrlParam(key) {
  let searchText = location.search.substring(1);
  let reg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)');
  let matchObj = searchText.match(reg);
  if (matchObj) return decodeURIComponent(matchObj[2]);
  return null;
}

getUrlParam('ie');
复制代码

转载于:https://juejin.im/post/5d27f9b25188252a1a5fb95d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值