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 相关文章推荐
js利用与或运算符优先级实现if else条件判断表达式
Apr 15 Javascript
JS操作Cookies包括(读取添加与删除)
Dec 26 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
js防止页面被iframe调用的方法
Oct 30 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
boostrapTable的refresh和refreshOptions区别浅析
Jan 22 Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 Javascript
vue轻量级框架无法获取到vue对象解决方法
May 12 Javascript
jQuery事件委托代码实践详解
Jun 21 jQuery
原生JS无缝滑动轮播图
Oct 22 Javascript
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
JS中准确判断变量类型的方法
Jun 01 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
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
vue中的scope使用详解
2017/10/29 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
Python 中 Meta Classes详解
2016/02/13 Python
详解Python装饰器由浅入深
2016/12/09 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
分析python请求数据
2018/08/19 Python
python打开windows应用程序的实例
2019/06/28 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
法律专业个人实习自我鉴定
2013/09/23 职场文书
初入社会应届生求职信
2013/11/18 职场文书
小学教学随笔感言
2014/02/26 职场文书
关于环保的建议书400字
2014/03/12 职场文书
师德师风的心得体会
2014/09/02 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
vue自定义右键菜单之全局实现
2022/04/09 Vue.js