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


Posted in Javascript onOctober 19, 2016

这篇文章主要介绍的是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="重定义参数" />

总结

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

Javascript 相关文章推荐
某人初学javascript的时候写的学习笔记
Dec 30 Javascript
jQuery插件kinMaxShow扩展效果用法实例
May 04 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
jQuery根据表单name获取值的方法
May 24 Javascript
Bootstrap字体图标无法正常显示的解决方法
Oct 08 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
Vue响应式原理详解
Apr 18 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
Aug 16 Javascript
Vue的路由动态重定向和导航守卫实例
Mar 17 Javascript
vue中引用swiper轮播插件的教程详解
Aug 16 Javascript
vue获取data数据改变前后的值方法
Nov 07 Javascript
vue脚手架项目创建步骤详解
Mar 02 Vue.js
Angular2  NgModule 模块详解
Oct 19 #Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
Oct 19 #Javascript
jQuery  ready方法实现原理详解
Oct 19 #Javascript
Javascript实现汉字和拼音互转的终极方案
Oct 19 #Javascript
Javascript typeof与instanceof的区别
Oct 18 #Javascript
javascript self对象使用详解
Oct 18 #Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 #Javascript
You might like
PHP 上传文件大小限制
2009/07/05 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
Python高效编程技巧
2013/01/07 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
Python发展简史 Python来历
2019/05/14 Python
python中实现词云图的示例
2020/12/19 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
幼儿园老师辞职信
2014/01/20 职场文书
便利店投资创业计划书
2014/02/08 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
出国留学担保书
2014/05/20 职场文书
格林童话读书笔记
2015/06/30 职场文书
筑梦中国心得体会
2016/01/18 职场文书
2016保送生自荐信范文
2016/01/29 职场文书