js 对url进行某个参数的删除,并返回url

两种情况

1对当前页面的url进行操作

function funcUrlDel(name){
        var loca = window.location;
        var baseUrl = loca.origin + loca.pathname + "?";
        var query = loca.search.substr(1);
        if (query.indexOf(name)>-1) {
            var obj = {}
            var arr = query.split("&");
            for (var i = 0; i < arr.length; i++) {
                arr[i] = arr[i].split("=");
                obj[arr[i][0]] = arr[i][1];
            };
            delete obj[name];
            var url = baseUrl + JSON.stringify(obj).replace(/["{}]/g,"").replace(/:/g,"=").replace(/\,/g,"&");
            return url
        }else{
            return window.location.href;
        };
    }
console.log(funcUrlDel('tt'));

2 对特定的url进行处理

function urlDelP(url,name){
        var urlArr = url.split('?');
        if(urlArr.length>1 && urlArr[1].indexOf(name)>-1){
            var query = urlArr[1];
            var obj = {}
            var arr = query.split("&");
            for (var i = 0; i < arr.length; i++) {
                arr[i] = arr[i].split("=");
                obj[arr[i][0]] = arr[i][1];
            };
            delete obj[name];
            var urlte = urlArr[0] +'?'+ JSON.stringify(obj).replace(/["{}]/g,"").replace(/:/g,"=").replace(/\,/g,"&");
            return urlte;
        }else{
            return url;
        };
    }
console.log(urlDelP('http://test.com/test?tt=3&kk=6','tt'));
console.log(urlDelP('http://test.com/test?kk=6&ll=88','tt'));

  

原文地址:https://www.cnblogs.com/xhliang/p/10082598.html