JS操作URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS操作URL相关的知识,希望对你有一定的参考价值。

function getQueStr(url, ref) //取获参数值
{
    var str = url.substr(url.indexOf(?) + 1);
    if (str.indexOf(&) != -1) {
        var arr = str.split(&);
        for (i in arr) {
            if (arr[i].split(=)[0] == ref)
                return arr[i].split(=)[1];
        }
    }
    else {
        return url.substr(url.indexOf(=) + 1)
    }
}

function setQueStr(url, ref, value) //设置参数值
{
    var str = "";
    if (url.indexOf(?) != -1)
        str = url.substr(url.indexOf(?) + 1);
    else
        return url + "?" + ref + "=" + value;
    var returnurl = "";
    var setparam = "";
    var arr;
    var modify = "0";

    if (str.indexOf(&) != -1) {
        arr = str.split(&);

        for (i in arr) {
            if (arr[i].split(=)[0] == ref) {
                setparam = value;
                modify = "1";
            }
            else {
                setparam = arr[i].split(=)[1];
            }
            returnurl = returnurl + arr[i].split(=)[0] + "=" + setparam + "&";
        }

        returnurl = returnurl.substr(0, returnurl.length - 1);

        if (modify == "0")
            if (returnurl == str)
                returnurl = returnurl + "&" + ref + "=" + value;
    }
    else {
        if (str.indexOf(=) != -1) {
            arr = str.split(=);

            if (arr[0] == ref) {
                setparam = value;
                modify = "1";
            }
            else {
                setparam = arr[1];
            }
            returnurl = arr[0] + "=" + setparam;
            if (modify == "0")
                if (returnurl == str)
                    returnurl = returnurl + "&" + ref + "=" + value;
        }
        else
            returnurl = ref + "=" + value;
    }
    return url.substr(0, url.indexOf(?)) + "?" + returnurl;
}

function delQueStr(url, ref) //删除参数值
{
    var str = "";

    if (url.indexOf(?) != -1)
        str = url.substr(url.indexOf(?) + 1);
    else
        return url;
    var arr = "";
    var returnurl = "";
    var setparam = "";
    if (str.indexOf(&) != -1) {
        arr = str.split(&);
        for (i in arr) {
            if (arr[i].split(=)[0] != ref) {
                returnurl = returnurl + arr[i].split(=)[0] + "=" + arr[i].split(=)[1] + "&";
            }
        }
        return url.substr(0, url.indexOf(?)) + "?" + returnurl.substr(0, returnurl.length - 1);
    }
    else {
        arr = str.split(=);
        if (arr[0] == ref)
            return url.substr(0, url.indexOf(?));
        else
            return url;
    }
}

 

以上是关于JS操作URL的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段3——url大全

VSCode自定义代码片段3——url大全

js获取url的参数

JS获取URL的参数

前端面试题之手写promise

在保持相同行为的同时隐藏 url 中的 #hash 片段?