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标准的JS调用flash方法
Nov 29 Javascript
该如何加载google-analytics(或其他第三方)的JS
May 13 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
Feb 11 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
May 05 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
js正则表达式replace替换变量方法
May 21 Javascript
jquery dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
ES6的异步操作之promise用法和async函数的具体使用
Dec 06 Javascript
vue实现拖拽效果
Dec 23 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
Jun 29 Javascript
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
php遍历数组的方法分享
2012/03/22 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
Symfony核心类概述
2016/03/17 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
C#中的验证控件有几种
2014/03/08 面试题
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
土木工程毕业生自荐信
2013/09/21 职场文书
普通院校学生的自荐信
2013/11/27 职场文书
联谊活动策划书
2014/01/26 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
妈妈别哭观后感
2015/06/08 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL