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 相关文章推荐
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 Javascript
JS字符串处理实例代码
Aug 05 Javascript
js综合应用实例简单的表格统计
Sep 03 Javascript
Node.js中的模块机制学习笔记
Nov 04 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
js实现精确到毫秒的倒计时效果
Aug 05 Javascript
js数组操作方法总结(必看篇)
Nov 22 Javascript
详解Angular 4.x 动态创建组件
Apr 25 Javascript
vue如何从接口请求数据
Jun 22 Javascript
Node中使用ES6语法的基础教程
Jan 05 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
Jan 19 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
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
JavaScript简介
2015/02/15 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
Python selenium 三种等待方式解读
2016/09/15 Python
python使用mysql数据库示例代码
2017/05/21 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
Django 限制访问频率的思路详解
2019/12/24 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
公司活动方案范文
2014/03/06 职场文书
学校三节实施方案
2014/06/09 职场文书
求职教师自荐书
2014/06/19 职场文书
党员民主评议自我评价
2014/10/20 职场文书
学生逃课检讨书
2015/02/17 职场文书
实习感想范文
2015/08/10 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
从原生JavaScript到React深入理解
2022/07/23 Javascript