javascript,增加或者替换url参数方法

[软件开发] 季雨林 2021/7/17 15:56:28

最近,由于开发的界面需要改造为带参数查询,因此干脆选用前端JavaScript代码进行页面刷新,需要额外处理下参数,然而网上一搜,基本都是替换参数,不包含缺少参数时候的新增参数,于是干脆改造一下,来一个新增替换均支持的版本:(测试方法部分用了jquery,需要自行引用jquery)

<h1>js添加或者编辑url的参数值</h1>

<h5>原始URL:</h5>
<input id="txtURL1" type="text" value="https://www.baidu.com/?param=old&b=2" class="col-10" />
<br />
<h5>原始URL:</h5>
<input id="txtURL2" type="text" class="col-10" />
<br />
<input id="btnAdd" type="button" value="添加参数" class="btn-info" onclick="AddParam();" />
<input id="btnEdit" type="button" value="修改参数" class="btn-info" onclick="EditParam();" />

<script type="text/javascript">
    function AddParam() {
        var url = $("#txtURL1").val();
        var newurl = editParamVal(url, "newparam", "add");
        $("#txtURL2").val(newurl);
        //window.location.href = url;
    }
    function EditParam() {
        var url = $("#txtURL1").val();
        var newurl = editParamVal(url, "param", "new");
        $("#txtURL2").val(newurl);
        //window.location.href = url;
    }

    //添加或者编辑url的参数值
    function editParamVal(url, paramName, replaceWith) {
        var oUrl = url.toString();
        if (oUrl.indexOf("?") > 0) {
        } else {
            oUrl += "?";
        }
        var param = oUrl.substr(oUrl.indexOf("?"), oUrl.length);
        console.log(param);
        if (param.indexOf(paramName) < 1) {
            oUrl = oUrl + "&" + paramName + "=" + replaceWith;
            console.log(oUrl);
        }

        var re = eval('/(' + paramName + '=)([^&]*)/gi');
        var nUrl = oUrl.replace(re, paramName + '=' + replaceWith);
        return nUrl;
    }


</script>



原文地址: https://www.opengps.cn/Blog/View.aspx?id=907 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

暂无评论!

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示