• 地址栏连接参数修改


    分享两个处理地址栏参数的常见方法

    第一步:将参数连接转换为对象

    // 将连接参数转为对象
    function queryToJson(url) {
        let locse = url.split('?');
        let search = locse[1] ? locse[1] : locse[0];
        let pairs = search.split('&');
        let result = {};
        pairs.forEach(function (pair) {
            pair = pair.split('=');
            if (pair[0].length > 0) {
                let resultPair = '';
                try {
                    resultPair = decodeURIComponent(pair[1]) || '';
                }
                catch (e) { }
                result[pair[0]] = resultPair;
            }
        });
        return result;
    }

    第二步:修改连接参数

    // 修改连接参数
    function changeURLArg(url, arg, argVal) {
        let pattern = arg + '=([^&]*)';
        let replaceText = arg + '=' + argVal;
        if (url.match(pattern)) {
            let tmp = '/(' + arg + '=)([^&]*)/gi';
            tmp = url.replace(eval(tmp), replaceText);
            return tmp;
        }
        else {
            if (url.match('[?]')) {
                return url + '&' + replaceText;
            }
            else {
                return url + '?' + replaceText;
            }
        }
    }

    参数解释

    url:就是连接的地址,可以是你手动传,也可以是localtion.href获取当前地址

    arg:想要修改的参数名称

    argVal:想要把被修改的参数转化成什么

    使用示例

    let URL = location.href;
            let bbb;
            //把URL变成对象
            let url = this.queryToJson(URL);
            // 把url的bbb前加aaa
            if (!!url.bbb) {
                //如果地址栏有bbb参数的时候
                if (url.bbb.indexOf('aaa') - 0 > -1) {
                    //地址栏bbb参数的值前面有aaa的时候
                    bbb = url.bbb;
                }
                else {
                    //地址栏bbb参数的值不是aaa的时候,在前面加上aaa
                    bbb = 'aaa' + url.bbb;
                }
            }
            else {
                //如果地址栏没有bbb参数的时候
                bbb = 'ccc';
            }
            //修改连接参数
            let useurl = this.changeURLArg(URL, 'bbb', bbb);
  • 相关阅读:
    CVS 快速入门指南
    我的博客皮肤
    OOP三个基本特征
    vi 操作
    智者能堪破这世界的定数,但没人能逃脱劫数
    技术路径的四阶段
    python每日学习2018/1/14(python之禅)
    python每日学习2018/1/11
    Python PyInstaller安装和使用教程(详解版)
    Windows环境下安装MinGW/gcc
  • 原文地址:https://www.cnblogs.com/wxtlinlin/p/8964165.html
Copyright © 2020-2023  润新知