首页 > 技术文章 > js 获取url中的参数 修改url 参数 移除url参数

wenming205 2017-10-02 14:45 原文

js 获取url中的参数 修改url 参数 移除url参数

var jsUrlHelper = {
    getUrlParam : function(url, ref) {
        var str = "";

        // 如果不包括此参数
        if (url.indexOf(ref) == -1)
            return "";

        str = url.substr(url.indexOf('?') + 1);

        arr = str.split('&');
        for (i in arr) {
            var paired = arr[i].split('=');

            if (paired[0] == ref) {
                return paired[1];
            }
        }

        return "";
    },
    putUrlParam : function(url, ref, value) {

        // 如果没有参数
        if (url.indexOf('?') == -1)
            return url + "?" + ref + "=" + value;

        // 如果不包括此参数
        if (url.indexOf(ref) == -1)
            return url + "&" + ref + "=" + value;

        var arr_url = url.split('?');

        var base = arr_url[0];

        var arr_param = arr_url[1].split('&');

        for (i = 0; i < arr_param.length; i++) {

            var paired = arr_param[i].split('=');

            if (paired[0] == ref) {
                paired[1] = value;
                arr_param[i] = paired.join('=');
                break;
            }
        }

        return base + "?" + arr_param.join('&');
    },
    delUrlParam : function(url, ref) {

        // 如果不包括此参数
        if (url.indexOf(ref) == -1)
            return url;

        var arr_url = url.split('?');

        var base = arr_url[0];

        var arr_param = arr_url[1].split('&');

        var index = -1;

        for (i = 0; i < arr_param.length; i++) {

            var paired = arr_param[i].split('=');

            if (paired[0] == ref) {

                index = i;
                break;
            }
        }

        if (index == -1) {
            return url;
        } else {
            arr_param.splice(index, 1);
            return base + "?" + arr_param.join('&');
        }
    }
};

测试

var url1 = "http://localhost?page=tpage&size=tsize&key=tkey";
    
    console.log('----get-------')
    console.log(jsUrlHelper.getUrlParam(url1,'page'))
    console.log(jsUrlHelper.getUrlParam(url1,'size'))
    console.log(jsUrlHelper.getUrlParam(url1,'key'))
    console.log(jsUrlHelper.getUrlParam(url1,'other'))
    console.log('----del-------')
    console.log(jsUrlHelper.delUrlParam(url1,'page'))
    console.log(jsUrlHelper.delUrlParam(url1,'size'))
    console.log(jsUrlHelper.delUrlParam(url1,'key'))
    console.log(jsUrlHelper.delUrlParam(url1,'other'))
    console.log('----put-------')
    console.log(jsUrlHelper.putUrlParam(url1,'page','page'))
    console.log(jsUrlHelper.putUrlParam(url1,'size','size'))
    console.log(jsUrlHelper.putUrlParam(url1,'key','key'))
    console.log(jsUrlHelper.putUrlParam(url1,'other','other'))

输出

----get-------
tpage
tsize
tkey

----del-------
http://localhost?size=tsize&key=tkey
http://localhost?page=tpage&key=tkey
http://localhost?page=tpage&size=tsize
http://localhost?page=tpage&size=tsize&key=tkey
----put-------
http://localhost?page=page&size=tsize&key=tkey
http://localhost?page=tpage&size=size&key=tkey
http://localhost?page=tpage&size=tsize&key=key
http://localhost?page=tpage&size=tsize&key=tkey&other=other

 

推荐阅读