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处理table表格的代码
Dec 06 Javascript
js变量以及其作用域详解
Jul 18 Javascript
javascript Event对象详解及使用示例
Nov 22 Javascript
javascript实现数字验证码的简单实例
Feb 10 Javascript
JavaScript插件化开发教程 (一)
Jan 27 Javascript
js类式继承与原型式继承详解
Apr 07 Javascript
javascript验证手机号和实现星号(*)代替实例
Aug 16 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
Jan 05 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
Jan 20 Javascript
JS实现动态添加DOM节点和事件的方法示例
Apr 28 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 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
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
服务器安全设置的几个注册表设置
2007/07/28 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
Python+微信接口实现运维报警
2016/08/27 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
wxPython实现整点报时
2019/11/18 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
Python 如何查找特定类型文件
2020/08/17 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
销售内勤岗位职责
2014/04/15 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
音乐之声观后感
2015/06/04 职场文书
怎样写家长意见
2015/06/04 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS