• 获取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'));//{app_key: "adhu3e534be06456426b"}
    

    把对象形式拼成url参数形式,函数封装

            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
    
    只研朱墨作春山
  • 相关阅读:
    Eclipse与Tomcat
    乱入Spring+Mybatis
    windows一次无线网卡被关闭事件
    数列的考查角度收集整理2[三轮总结]
    数列的考查角度收集整理1[三轮总结]
    求函数的解析式
    不等式证明的那些事
    高中数学中最值素材整理【待编辑】
    函数与导数中常用的函数和不等关系
    坐标系与参数方程的考向整理[三轮总结]
  • 原文地址:https://www.cnblogs.com/guolintao/p/9081392.html
Copyright © 2020-2023  润新知