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); 



  • 相关阅读:
    poj 2676 Suduku (dfs)
    poj 1562 Oil Deposits (dfs)
    poj 2907 Collecting Beepers (dfs)
    poj 1655 Balancing Act (树形dfs)
    poj 3411 Paid Roads (dfs)
    hdu 2896 病毒侵袭 (AC)
    hdu 3065 病毒侵袭持续中 (AC)
    poj 2251 Dungeon Master (bfs)
    java中debug使用
    Swing入门级小项目总结
  • 原文地址:https://www.cnblogs.com/cyfeng/p/13786597.html
Copyright © 2011-2022 走看看