1.解析路径上?后边参数,转成key,value
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>解析URL或者参数</title>
</head>
<body>
<script>
function parseURLParams(url = '') {
const params = {};
const queryString = url?.split("?")[1];
if (!queryString) return params;
const paramPairs = queryString.split("&");
for (const pair of paramPairs) {
const [key, value] = pair.split("=");
/*
decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
参数:一个字符串,必须,含有编码URL组件或其他要解码得文本。
返回:一个字符串,解码后的字符串。
*/
const decodedKey = decodeURIComponent(key);
const decodedValue = decodeURIComponent(value);
if (params.hasOwnProperty(decodedKey)) {
if (Array.isArray(params[decodedKey])) {
params[decodedKey].push(decodedValue);
} else {
params[decodedKey] = [params[decodedKey], decodedValue];
}
} else {
params[decodedKey] = decodedValue;
}
}
return params;
}
const url = "https://example.com/path?name=John&age=25&interests=reading&interests=swimming";
const parsedParams = parseURLParams(url);
console.log(parsedParams);
</script>
</body>
</html>