使用JavaScript重定向URL參數


簡單實現使用JavaScript重置url參數 ,兩種方法,一種字符串拼接形式,一種使用正則判斷,且都已經測試通過。供大家參考指教。

1、字符拼接形式

function setUri(para, val) {
            var strNewUrl = new String();
            var strUrl = new String();
            var url = window.location.href;
            strUrl = window.location.href;

            if (strUrl.indexOf("?") != -1) {
                strUrl = strUrl.substr(strUrl.indexOf("?") + 1);   //獲取參數

                if (strUrl.toLowerCase().indexOf(para.toLowerCase()) == -1) {  //如果沒有找到參數,則直接賦值
                    strNewUrl = url + "&" + para + "=" + val;
                    window.location.href = strNewUrl;
                } else {
                    var aParam = strUrl.split("&");

                    for (var i = 0; i < aParam.length; i++) {
                        if (aParam[i].substr(0, aParam[i].indexOf("=")).toLowerCase() == para.toLowerCase()) {
                            aParam[i] = aParam[i].substr(0, aParam[i].indexOf("=")) + "=" + val;
                        }
                    }
                    strNewUrl = url.substr(0, url.indexOf("?") + 1) + aParam.join("&");
                    window.location.href = strNewUrl;
                }
            } else {
                strUrl += "?" + para + "=" + val;
                window.location.href = strUrl;
            }
        }
View Code

2、利用正則

 1  function setPara(para, val) {
 2             var newpar = "";
 3             var url = window.location.href;
 4             var pars = location.search.substring(1);
 5 
 6             var reg = new RegExp("(^|)" + para + "=([^&]*)(|$)");
 7             if (reg.test(pars)) {   //有需要的參數para
 8 
 9                 var p1 = pars.split(para)[0];   //productID=100857&count=1&
10                 var p2 = pars.split(para)[1];   //=75825&coupval=1.5&addressID=358&invoiceID=1245&invoiceName=jesse
11 
12                 if (p2.indexOf("&") > -1) {
13                     var p3 = p2.split("&")[0];
14                     if (p3 == "=" + val + "") {
15                         return false;
16                     }
17                     newpar = p1 + para + '=' + val + p2.substr(2);
18                 } else {
19                     if (p1) {
20                         newpar = p1 + para + '=' + val;
21                     } else {
22                         newpar = para + '=' + val;
23                     }
24                 }
25             } else {
26                 if (url.indexOf("?") == -1) {  //沒有參數
27                     newpar = para + "=" + val;
28                 } else {
29                     newpar = pars + "&" + para + "=" + val;
30                 }
31             }
32             window.location.href = location.href.split('?')[0] + "?" + newpar;
33         }
View Code

 調用: 

<script>
window.onload = function () {
            var btn = document.getElementById("btnClick");

            btn.onclick = function () {

          // url地址:http://localhost:54714/testuri.aspx?productID=100857&count=1&coupresId=12785&coupval=1.5&openId=12456&addressID=358&invoiceID=&invoiceName=
          //setUri("coupresId", 0);
          setPara("coupresId", 0); 
    } 
  }
</script>

<input type="button" id="btnClick" value="重定義參數" />

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM