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
    
    只研朱墨作春山
  • 相关阅读:
    前台传入的application/json;charset=UTF-8格式的数据,java后端从request中获取json数据
    vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单
    vue-element-admin
    进程间通信的几种方式以及线程间通信的几种方式
    vue调用api接口解决跨域问题
    C#多态性(函数重载)
    VirtualBox中安装CentOS7后无法上网的解决方案
    C#继承
    android通过url下载文件
    python的数据爬取
  • 原文地址:https://www.cnblogs.com/guolintao/p/9081392.html
Copyright © 2011-2022 走看看