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上传插件Uploadify使用详解及错误处理
Apr 27 Javascript
在vs2010中调试javascript代码方法
Feb 11 Javascript
javascript制作的网页侧边弹出框思路及实现代码
May 21 Javascript
JavaScript获取指定元素位置的方法
Apr 08 Javascript
原生js封装的一些jquery方法(详解)
Sep 20 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
AngularJS全局警告框实现方法示例
May 18 Javascript
详解如何实现一个简单的Node.js脚手架
Dec 04 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
vue-router之实现导航切换过渡动画效果
Oct 31 Javascript
在vue中使用vuex,修改state的值示例
Nov 08 Javascript
基于Cesium绘制抛物弧线
Nov 18 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实现paypal整合方法
2010/11/28 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
JQuery插件开发示例代码
2013/11/06 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python定时器使用示例分享
2014/02/16 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
几个判断型的面试题
2012/07/03 面试题
餐厅采购员岗位职责
2014/03/06 职场文书
房屋继承公证书
2014/04/10 职场文书
贷款承诺书范文
2014/05/19 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
道德模范事迹材料
2014/12/20 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
未婚证明格式
2015/06/15 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python