JavaScript重定向URL参数的两种方法小结

 更新时间:2016年10月19日 09:07:32   作者:阿良君  
关于JavaScript重定向URL参数的实现方法网站有很多,这篇文章的主要内容是从网上查找,并进行了修改,简单粗暴的实现使用JavaScript重置url参数,文中给出了详细的示例代码和调用代码,对大家的理解和学习很有帮助,感兴趣的朋友们下面来一起看看吧。

这篇文章主要介绍的是JavaScript重定向URL参数的两种方法,下面话不多说,直接看示例代码。

一、字符拼接形式

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;
      }
    }

二、利用正则

  //使用正则
    function setPara(para, val) {
      var newpar = "";
      var url = window.location.href;
      var pars = location.search.substring(1);

      var reg = new RegExp("(^|)" + para + "=([^&]*)(|$)");
      if (reg.test(pars)) {  //有需要的参数para

        var p1 = pars.split(para)[0];  //productID=100857&count=1&
        var p2 = pars.split(para)[1];  //=75825&coupval=1.5&addressID=358&invoiceID=1245&invoiceName=jesse

        if (p2.indexOf("&") > -1) {
          var p3 = p2.split("&")[0];
          if (p3 == "=" + val + "") {
            return false;
          }
          newpar = p1 + para + '=' + val + '&' + (p2.split(p3))[1];
        } else {
          if (p1) {
            newpar = p1 + para + '=' + val;
          } else {
            newpar = para + '=' + val;
          }
        }
      } else {
        if (url.indexOf("?") == -1) {
          newpar = pars +"&"+ para + "=" + val;
        } else {
          newpar = pars + "&" + para + "=" + val;
        }
      }
      window.location.href = location.href.split('?')[0] + "?" + newpar;
    }

 调用:

<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="重定义参数" />

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解

    js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解

    这篇文章主要介绍了js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解的相关资料,需要的朋友可以参考下
    2015-11-11
  • 小程序实现列表点赞功能

    小程序实现列表点赞功能

    这篇文章主要为大家详细介绍了小程序实现列表点赞功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 利用window.name实现windowStorage代码分享

    利用window.name实现windowStorage代码分享

    本文主要介绍了利用window.name实现windowStorage的功能分享,大家参考使用吧
    2014-01-01
  • JavaScript对象属性操作实例解析

    JavaScript对象属性操作实例解析

    这篇文章主要介绍了JavaScript对象属性操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • uniapp使用第三方UI库uview-plus的方法

    uniapp使用第三方UI库uview-plus的方法

    uview-plus是uni-app全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,下面这篇文章主要给大家介绍了关于uniapp使用第三方UI库uview-plus的方法,需要的朋友可以参考下
    2023-04-04
  • ES6 新增的创建数组的方法(小结)

    ES6 新增的创建数组的方法(小结)

    这篇文章主要介绍了ES6 新增的创建数组的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • JavaScript 异步时序问题

    JavaScript 异步时序问题

    这篇文章主要介绍了JavaScript 异步时序问题,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-11-11
  • js基于setTimeout与setInterval实现多线程

    js基于setTimeout与setInterval实现多线程

    这篇文章主要介绍了js基于setTimeout与setInterval实现多线程的方法,分析了多线程的原理与javascript模拟实现多线程的相关技巧,需要的朋友可以参考下
    2016-06-06
  • JavaScript 事件冒泡应用实例分析

    JavaScript 事件冒泡应用实例分析

    在一些传统的小型WEB应用开发过程中,JavaScript通常只是拿来做表单验证而以,所以你很少会遇到因为JavaScript事件冒泡而影响功能的实现情况,又或者事件冒泡对最终实现效果影响不大,可忽略。
    2010-01-01
  • 原生JS实现H5转盘游戏的示例代码

    原生JS实现H5转盘游戏的示例代码

    这篇文章主要介绍了如何利用原生JS实现转盘游戏,可以自由调整概率。文中的示例代码讲解详细,对我们学习JavaScript有一定帮助,需要的可以参考一下
    2022-03-03

最新评论