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 相关文章推荐
翻译整理的jQuery使用查询手册
Mar 07 Javascript
Javascript模块模式分析
May 16 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 Javascript
封装了一个支持匿名函数的Javascript事件监听器
Jun 05 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
Jun 20 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
Nov 08 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
Feb 28 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
angularjs中ng-bind-html的用法总结
May 23 Javascript
Angular4学习笔记之实现绑定和分包
Aug 01 Javascript
JS基于贪心算法解决背包问题示例
Nov 27 Javascript
element-ui点击查看大图的方法示例
Dec 14 Javascript
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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
javascript实现的网页局布刷新效果
2008/12/01 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
对比分析json及XML
2014/11/28 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
python学生管理系统学习笔记
2019/03/19 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
印度民族服装购物网站:BIBA
2019/08/05 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
启动一个线程是用run()还是start()
2016/12/25 面试题
班级旅游计划书
2014/05/03 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
新员工试用期自我评价
2015/03/10 职场文书
《刷子李》教学反思
2016/02/20 职场文书
六年级作文之自救
2019/12/19 职场文书