这篇文章主要介绍的是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;

}

调用:

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);

}

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

java重定向url有参数吗_JavaScript重定向URL参数的两种方法小结相关推荐

  1. vue 获取请求url_vue 获取url里参数的两种方法小结

    我就废话不多说了,大家还是直接看代码吧~ 第一种: const query = Qs.parse(location.search.substring(1)) let passport = query. ...

  2. java 获取星期几_java中获取日期是星期几的两种方法

    java中取得指定日期是星期几可以采用下面两种方式取得日期是星期几:(推荐:java视频教程) 1.使用Calendar类//根据日期取得星期几 public static String getWee ...

  3. java 文件尾部_java 在file的尾部添加数据的两种方法总结

    java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将rando ...

  4. java成员变量怎么赋值_给成员变量赋值的两种方法

    JAVA 跟C++ 差不多,给类里面的私有成员变量一般有两种方法: 一种是通过 成员函数 来赋值 一种是:通道构造函数来赋值 /* 我们一直在使用构造方法,但是,我们确没有定义构造方法,用的是哪里来的 ...

  5. java构造和解析json_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  6. java json解析 代码_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  7. java校验码的设计_Java动态验证码单线设计的两种方法

    1.java的动态验证码我这里将介绍两种方法: 一:根据java本身提供的一种验证码的写法,这种呢只限于大家了解就可以了,因为java自带的模式编写的在实际开发中是没有意义的,所以只供学习一下就可以了 ...

  8. java数组循环扩容_Java中实现数组动态扩容的两种方法

    Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...

  9. java解压缩文件名乱码_解决JDKZipEntry压缩文件名乱码的两种方法

    当我们在创建java的项目过程中,有时候会遇到一些棘手的问题,就比如说:在JDk zipEntry压缩中文文件名出现乱码的问题.那么对于这个问题,我们应该怎样来解决呢?今天我们就一起来学习一下它的解决 ...

最新文章

  1. Python爬虫【二】请求库requests
  2. 将oracle冷备份恢复到另外一个数据库实例中
  3. 利用GPU训练网络时遇到的一些问题
  4. 汝跟被升职者之间,不存在竞争关系
  5. object-c的静态变量(static)
  6. crc java代码_Java ZipEntry getCrc()用法及代码示例
  7. Autojs微信自动操作免root脚本源码
  8. 毕业实习笔记——WRF模式入门(Cygwin版)
  9. img图片加载失败的处理
  10. 赛宁网安助力中国移动打造国内领先云安全能力
  11. 计算机组成fc fz是什么,计算机组成原理实验二
  12. Windows下nginx启动报错黑屏(1113: No mapping for the Unicode character exists in the target......
  13. LVGL 获取光标坐标位置
  14. 清除Chrome浏览器下默认浅黄色背景(保存密码时出现)
  15. RLC振荡原理与RC Snubber吸收电路
  16. 主机如何连接到URSim中的客户端接口
  17. C4D 21版 安装好一打开就闪退,查了好久
  18. 复杂度的渐进表示法(时间复杂度)
  19. 安装smartPPT,电脑显示系统桌面就卡住……
  20. Python - 下载视频网站的视频

热门文章

  1. 【需求工程】需求依赖矩阵
  2. 【UI/UX】Web应用GUI设计
  3. 统计范围内不含‘7‘的数字个数(洛谷P1590题题解,Java语言描述)
  4. PBFT 算法原理简介
  5. 使用 Warshall(沃舍尔)算法求解关系的传递闭包
  6. C++学习笔记系列四
  7. [译] 如何在东南亚拓展您的应用业务
  8. 中国人工智能学会通讯——智能系统测评:挑战和机遇
  9. 程序员愤怒了:我们不仅要当管理者还要当CEO!
  10. Python中类与对象的关系