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'));//{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
    
    只研朱墨作春山
  • 相关阅读:
    linux环境下zookeeper下载安装
    vue父组件传值给子组件
    nginx配置负载均衡
    centos安装与配置keepalived+nginx高可用
    centos7安装jdk1.8
    linux系统centos7安装最新版本nginx
    vue项目简单菜单排序
    原生js复制粘贴上传图片前后台代码,兼容firebox,chrome, ie11,亲测有效
    mysql字符集与比较规则
    EL和JSTL表达式的使用
  • 原文地址:https://www.cnblogs.com/guolintao/p/9081392.html
Copyright © 2011-2022 走看看