使用js写一个方法获取url上的所有参数
你可以使用JavaScript编写一个函数来获取URL上的所有参数。以下是一个简单的示例:
function getURLParams() {
const urlParams = {};
const queryString = window.location.search;
const urlParamsStrings = queryString.split('?')[1].split('&');
urlParamsStrings.forEach(paramString => {
if (paramString) {
const [key, value] = paramString.split('=');
urlParams[key] = decodeURIComponent(value);
}
});
return urlParams;
}
// 使用示例
const params = getURLParams();
console.log(params);
但是,这个函数假设查询字符串始终存在并且以?
开头。为了使其更健壮,你可以修改函数以处理各种情况,例如没有查询字符串或查询字符串格式不正确的情况。以下是一个更健壮的版本:
function getURLParams() {
const urlParams = {};
const queryString = window.location.search;
// 如果没有查询字符串,则直接返回空对象
if (!queryString) {
return urlParams;
}
// 移除查询字符串开头的'?',并通过'&'分割成多个参数对
const urlParamsStrings = queryString.substring(1).split('&');
urlParamsStrings.forEach(paramString => {
if (paramString) {
const [key, value] = paramString.split('=');
// 对参数值进行URL解码
urlParams[key] = decodeURIComponent(value || '');
}
});
return urlParams;
}
// 使用示例
const params = getURLParams();
console.log(params);
这个更健壮的版本首先检查查询字符串是否存在,如果不存在,则直接返回一个空对象。然后,它使用substring(1)
来移除查询字符串开头的?
,接着通过&
字符将查询字符串分割成多个参数对。最后,它遍历这些参数对,将它们存储在一个对象中,并返回该对象。注意,这里还对参数值进行了URL解码,以确保正确处理特殊字符。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)