在开发中,利用JS获取URL参数是一个常见的任务,用于处理任何业务或请求逻辑,了解如何从URL中检索查询字符串值非常重要,这也是面试中经常出现的问题之一。
function getUrlParam(name,url) {
url= url || window.location.href;
if(!!window.URL){
let u = new URL(window.location.href);
return u.searchParams.get(name,);
}
let reg = new RegExp('(^|&?)' + name + '=([^&]*)(&|$)', 'i');
let r = url.substr(1).match(reg);
if (r != null) {
return decodeURI(r[2]);
}
return undefined;
};
首先判断浏览器都支持 URL 和 URLSearchParams 对象,可以很方便地从URL中提取参数。
如果不支持,可以使用正则表达式匹配URL参数,这种方法相对较低效且较复杂,主要是通过构造一个含有目标参数的正则表达式对象,匹配目标参数。主要是通过构造一个含有目标参数的正则表达式对象,匹配目标参数。
延伸:除此之外还可以使用 split 和 reduce 来获取,或者利用location.search和自定义函数,比如:
const params = new URLSearchParams(location.search);
params.get(name);