zoukankan      html  css  js  c++  java
  • 封装一个方法获取url上面的参数

    一、取参  
    function getAllUrlParams(url) {
    var queryString = url ? url.split('?')[1] : window.location.search.slice(1);
    var obj = {};
    if (queryString) {
    queryString = queryString.split('#')[0];
    var arr = queryString.split('&');
    for (var i = 0; i < arr.length; i++) {
    var a = arr[i].split('=');
    var paramNum = undefined;
    var paramName = a[0].replace(/[d*]/, function (v) {
    paramNum = v.slice(1, -1);
    return '';
    });
    // 设置参数值(如果为空则设置为true)
    var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
    // paramName = paramName.toLowerCase();
    // paramValue = paramValue.toLowerCase();
    if (obj[paramName]) {
    if (typeof obj[paramName] === 'string') {
    obj[paramName] = [obj[paramName]];
    }
    if (typeof paramNum === 'undefined') {
    obj[paramName].push(paramValue);
    } else {
    obj[paramName][paramNum] = paramValue;
    }
    } else {
    obj[paramName] = paramValue;
    }
    }
    }
    return obj;
    }
    console.log(getAllUrlParams('http://display.intdmp.com/site_login_ijf.htm?app_key=adhu3e534be06456426b&acc=asda'));
    //{app_key: "adhu3e534be06456426b", acc: "asda"}
     

    二、存参

     pasting

    function toQueryPair(key, value, bo) {
    if (typeof value === 'undefined') {
    return key;
    }
    return key + '=' + (bo ? encodeURIComponent(value === null ? '' : String(value)) : value === null ? '' : String(
    value));
    }
    const toBodyString = function (obj, bo = true) {
    let ret = [];
    for (let key in obj) {
    let values = obj[key];
    if (values && values.constructor === Array) { //数组
    let queryValues = [];
    for (let i = 0, len = values.length, value; i < len; i++) {
    value = values[i];
    queryValues.push(toQueryPair(key, value));
    }
    ret = ret.concat(queryValues);
    } else { //字符串
    ret.push(toQueryPair(key, values, bo));
    }
    }
    return ret.join('&');
    }
    console.log(toBodyString({
    a: 123546,
    b: 'fdfdfd',
    c: '9999'
    })); //a=123546&b=fdfdfd&c=9999
  • 相关阅读:
    LinkedList -链表集合
    java包装类,自动装箱,拆箱,以及基本数据类型与字符串的转换
    StringBuilder -字符串缓冲区,节约内层空间变长数组
    System的两常用个静态方法
    StringBuilder
    mysql
    空房间
    数据结构占坑
    sql语句优化
    editPlus快捷键
  • 原文地址:https://www.cnblogs.com/yunshangwuyou/p/9661534.html
Copyright © 2011-2022 走看看