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 相关文章推荐
javascript级联下拉列表实例代码(自写)
May 10 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
js身份证判断方法支持15位和18位
Mar 18 Javascript
javascript删除元素节点removeChild()用法实例
May 26 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
JS实现页面打印(整体、局部)
Aug 18 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
基于express中路由规则及获取请求参数的方法
Mar 12 Javascript
JS中原始值和引用值的储存方式示例详解
Mar 23 Javascript
jquery实现垂直手风琴导航栏
Feb 18 jQuery
JS pushlet XMLAdapter适配器用法案例解析
Oct 16 Javascript
Vue项目打包部署到apache服务器的方法步骤
Feb 01 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
php处理json时中文问题的解决方法
2011/04/12 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
jQuery实现计算器功能
2020/10/19 jQuery
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
深入理解python函数递归和生成器
2016/06/06 Python
在centos7中分布式部署pyspider
2017/05/03 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
python爬虫之自动登录与验证码识别
2020/06/15 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
美术第二课堂活动总结
2014/07/08 职场文书
经典毕业生求职信
2014/07/12 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL
基于Python实现nc批量转tif格式
2022/08/14 Python