解析URL路径参数

文章介绍了如何使用JavaScript中的parseURLParams函数解析URL中的查询字符串,将键值对解码并存储在对象中,如name=John,age=25,interests=[reading,swimming]。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值