在JavaScript中,可以使用以下原生方法获取URL上的所有参数,并返回一个包含参数键值对的对象:
function getUrlParameters(url) {
const params = {
};
const queryString = url.split('?')[1];
if (queryString) {
const paramPairs = queryString.split('&');
for (let i = 0; i < paramPairs.length; i++) {
const pair = paramPairs[i].split('=');
const key = decodeURIComponent(pair[0]);
const value = decodeURIComponent(pair[1] || '');
if (params[key]) {
if (Array.isArray(params[key])) {
params[key].push(value);
} else {
params[key] = [params[key], value];
}
} else {
params[key] = value;
}
}
}
return params;
}
// 示例用法
const url = 'https://example.com/page?name=John&age=25&interests=programming&interests=music';
const parameters = getUrlParameters(url);
console.log(parameters);
上述代码定义了一个名为getUrlParameters
的函数,接受一个URL作为参数。函数首先通过将URL使用问号?
分割,获取查询字符串部分。然后,它将查询字符串使用&
分割成参数对,并对每个参数对进行解码。最后,将解码后的参数键值对存储在params
对象中,并返回该对象。
示例用法中的URL是一个示例,你可以替换为你自己的URL进行测试。函数将返回一个包含参数键值对的对象,例如:
{
name: "John",
age: "25",
interests: ["programming", "music"]
}
注意,如果URL中有重复的参数键,例如interests
,函数会将它们存储为数组形式,以便能够包含所有的值。