获取URL参数
//传统方式
//8001/index.html?a=10&b=20&c=30#hash
function query(name) {
const search = location.search.substr(1); //location.search //?a=10&b=20&c=30 //.substr(1)去掉问号
//search: a=10&b=20&c=30
const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`, 'i'); //正则表达式进行匹配查找
//(^|&) 观察一下规律 abc前面不是开头就是& 一个括号就是一个整体
//${ name } name参数 代表abc
//= ([^&] *) 等号= [^&]*对应10 20 30 代表去掉与号& []是多选一 但是[^什么] 表示不要什么
//(&| $) &或者是结尾 'i'不区分大小写
const res = search.match(reg);
if (res === null) {
return null;
}
return res[2]; // res a的 0:a=10& 1: "" 2: 10 3:&
}
query('a');
//URLSearchParams API
function query(name) {
const search = location.search;
const p = new URLSearchParams(search);
return p.get(name);
}
console.log(query('a'));