码迷,mamicode.com
首页 > 其他好文 > 详细

地址栏连接参数修改

时间:2018-04-27 21:13:12      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:foreach   手动   16px   else   hang   alt   change   reac   名称   

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

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

 

// 将连接参数转为对象
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);

 

地址栏连接参数修改

标签:foreach   手动   16px   else   hang   alt   change   reac   名称   

原文地址:https://www.cnblogs.com/wxtlinlin/p/8964165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!