写一个获取当前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');
复制代码