方法一 js中字符串split方法实现
例: const url = “http://www.baidu.com?a=1&b=2&c=3”;
const getUrlSearchToObj1 = (url) => {
const str = url.split("?")[1];
const arr = str.split("&");
const obj = {};
arr.forEach((item) => {
const oneItem = item.split("=");
obj[oneItem[0]] = oneItem[1];
});
return obj;
};
方法二 使用new URL()实现
const getUrlSearchToObj2 = (url) => {
const urlObj = new URL(url);
const params = urlObj.searchParams;
const obj = {};
for (const oneItem of params.entries()) {
obj[oneItem[0]] = oneItem[1];
}
return obj;
};
方法三 使用new URLSearchParams()实现
此方法更适合用location.search
const getUrlSearchToObj3 = (url) => {
const searchParams = new URLSearchParams(`?${url.split("?")[1]}`);
const obj = {};
for (const [key, value] of searchParams.entries()) {
obj[key] = value;
}
return obj;
};