zoukankan      html  css  js  c++  java
  • url参数解析成对象

    function parseParam(url) {
        // 将浏览器地址中 ‘?’ 后面的字符串取出来
        const paramsStr = /.+?(.+)$/.exec(url)[1];
        // 将截取的字符串以 ‘&’ 分割后存到数组中
        const paramsArr = paramsStr.split('&');
        // 定义存放解析后的对象
        let paramsObj = {};
        // 遍历
        paramsArr.forEach(param => {
          // 判断是否含有key和value
          if (/=/.test(param)) {
            // 结构获取对象的key和value
            let [key, val] = param.split('=');
            // 解码
            val = decodeURIComponent(val);
            // 判断是否转为数字
            val = /^d+$/.test(val) ? parseFloat(val) : val;
            // 判断存放对象中是否存在key属性
            if (paramsObj.hasOwnProperty(key)) {
              // 存在的话就存放一个数组
              paramsObj[key] = [].concat(paramsObj[key], val);
            } else {
              // 不存在就存放一个对象
              paramsObj[key] = val;
            }
          } else {
            // 没有value的情况
            paramsObj[param] = true;
          }
        })
        return paramsObj;
    }

    例子:

    let url = 'https://www.baidu.com?username=%22tmc%22&password=%22123456%22&dutiy=%E5%89%8D%E7%AB%AF%E6%94%BB%E5%9F%8E%E7%8B%AE&flag';
    console.log(parseParam(url))
    
    { 
     username:
    '"tmc"', password: '"123456"', dutiy: '前端攻城狮', flag: true }
  • 相关阅读:
    software architect
    bmh算法
    程序动态切片技术研究
    chm便捷制作
    protobuffer源码解读
    字符串搜索算法比较
    软件架构重组:实践需要和当前做法
    游戏素材制作
    ea(enterprise architect) 相关资料集锦
    vs开启工程非常卡分析和解决
  • 原文地址:https://www.cnblogs.com/LeoXnote/p/14681367.html
Copyright © 2011-2022 走看看