如何从地址栏获取参数?
方法一:循环拆分
let params = window.location.search; //地址栏的所有数据 ?username=zhangsan&pwd=123456;
let obj = {}; //截取完后存放的对象
params.slice(1) //去掉开头的 '?'号
.split('&') //根据"&"分割成数组
.forEach((item) => {
let info = item.split('='); //将当前元素值按"="分割,保存在info数组中
obj[info[0]] = obj[1]; //向obj中添加一个元素,属性名为info[0],值为info[1]
})
console.log(obj); //输出结果为{ username : "zhangsan" , pwd : "123456" }
方法二:正则表达式
//公共的方法
function query(name) {
const search = location.search.substr(1) //去掉?
const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`, 'i')
const res = search.match(reg)
if(res === null){
return null
}
console.log(res)
return res[2]
}
方法三:通过URLSearchParams
function query(name) {
const search = location.search
const p = new URLSearchParams(search)
return p.get(name)
}