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的tab切换效果代码[代码分离]
Apr 11 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
May 06 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
Jul 22 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
详解Vue2 SSR 缓存 Api 数据
Nov 20 Javascript
javascript变量提升和闭包理解
Mar 12 Javascript
详解Vue源码学习之callHook钩子函数
Jul 25 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
Javascript三种字符串连接方式及性能比较
May 28 Javascript
taro 实现购物车逻辑的实例代码
Jun 05 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/07/20 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
jQuery ui 1.7更新小结
2009/08/15 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
js实现3D旋转效果
2020/08/18 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
培训自我鉴定
2014/01/31 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书