1. 程式人生 > >地址欄連接參數修改

地址欄連接參數修改

名稱 UNC [1] 沒有 his hang local font indexof

分享兩個處理地址欄參數的常見方法

第一步:將參數連接轉換為對象

// 將連接參數轉為對象
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);

地址欄連接參數修改