zoukankan      html  css  js  c++  java
  • 将url参数转为对象

    例如:https://www.baidu.com/baidu?name=aaa&age=20
    我们想把参数转变成对象,以备随时使用,现推荐两种方法
    方法一:
    let urlToJson = (url = window.location.href) => {  // 箭头函数默认传值为当前页面url
       
        let obj = {}, 
        index = url.indexOf('?'), // 看url有没有参数
        params = url.substr(index + 1); // 截取url参数部分 name = aaa & age = 20
    
        if(index != -1) { // 有参数时
            let parr = params.split('&');  // 将参数分割成数组 ["name = aaa", "age = 20"]
            for(let i of parr) {           // 遍历数组
                let arr = i.split('=');  // 1) i name = aaa   arr = [name, aaa]  2)i age = 20  arr = [age, 20]
                obj[arr[0]] = arr[1];  // obj[arr[0]] = name, obj.name = aaa   obj[arr[0]] = age, obj.age = 20
            }
        }
        
        return obj;  
    }

    方法二:

    首先获取URL后面的参数
    var keywords=window.location.search;//结果:'?name=aaa&age=20' 
    var keywords=window.location.search.substr(1);//结果:'name=aaa&age=20'
    开始替换:

    var result = keywords.replace(/&/g, '","').replace(/=/g, '":"');

    ‘/g’这里表示所有,replace(/&/g, ‘","’),这里表示 把所有的&都换成 “,”

    补上首尾缺失的部分:

    var reqDataString = '{"' + result + '"}';

    最后json字符串搞定,需要转成json对象

    JSON.parse(reqDataString);

    当然,这里还需要做一个 没有 带参数的判断

    完整代码如下:
    var keywords = window.location.search.substr(1);
    var result = keywords.replace(/&/g, '","').replace(/=/g, '":"');
    var reqDataString = '{"' + result + '"}';
    var obj = JSON.parse(reqDataString); 



  • 相关阅读:
    实验吧之损坏的U盘
    kali linux中的yum、rpm常见的问题
    常用的搜索引擎使用技巧
    Host Only、NAT和Bridge三种网络连接
    Binwalk的安装和使用
    虚拟机增强工具的安装
    下载带有kali linux系统的VMware如何打开虚拟机?
    安装Linux虚拟系统
    虚拟机之种种问题
    python 运行时报错误SyntaxError: Non-ASCII character 'xe5' in file 1.py on line 2
  • 原文地址:https://www.cnblogs.com/cyfeng/p/13786597.html
Copyright © 2011-2022 走看看