简单实现使用JavaScript重置url参数 ,两种方法,一种字符串拼接形式,一种使用正则判断,且都已经测试通过。供大家参考指教。

1、字符拼接形式

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

2、利用正则

  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.substr(2);
} else {
if (p1) {
newpar = p1 + para + '=' + val;
} else {
newpar = para + '=' + val;
}
}
} else {
if (url.indexOf("?") == -1) { //没有参数
newpar = 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重定向URL参数的更多相关文章

  1. 多浏览器兼容用javascript获取url参数的方法比较推荐的一种

    多浏览器兼容用javascript获取url参数的方法比较推荐的一种 <script language = javascript> function request(paras){ var ...

  2. javascript获取url参数的方法

    发布:thatboy   来源:Net     [大 中 小] 本文介绍下,在javascript中取得url中某一个参数的方法,这里分享一个小例子,供大家学习参考下.本文转自:http://www. ...

  3. javascript获取URL参数和参数值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. JavaScript获取URL参数公共方法

    写一个JavaScript获取URL参数的通用方法,可以把它放到常用方法的JS文件中调用,直接上代码例子,新手可以学习一下! <!DOCTYPE html> <html lang=& ...

  5. 用JavaScript获取URL参数的方法之一

    若地址栏URL为:abc.html?m=tomms&c=allsearchlist&pageNo=1&pageNum=20&text=1 <script> ...

  6. javascript 获取url参数

    /** window.location.search获取url地址?以后的值 获取url参数有两种方法,第一种如下,第二种是通过正则 */ //基本版 function getParam() { va ...

  7. JavaScript获取URL参数方法总汇

    现在做页面基本都用AJAX,因此导致操作很麻烦,每次都需要通过JS获取url中的参数值,网上所搜到很多资料,没一次能记住的,也不知道在哪个项目中使用过,现在又需要通过JS获取url参数,因此不能在偷懒 ...

  8. javascript取url参数的几种方法

    //获取QueryString的数组 function getQueryString() { var result = location.search.match(new RegExp("[ ...

  9. Javascript 获取url参数,hash值 ,cookie

    /** * 获取请求参数 * @param key * @returns {*} */ function getRequestParameter(key){ var params = getReque ...

随机推荐

  1. ios 8 地图定位

    在xcode6在 苹果公司定位方法改变地图,谁也无法使用 错误说明:Trying to start MapKit location updates without prompting for loca ...

  2. Microsoft .NET Pet Shop 简介

    最初研究 .NET Pet Shop 的目的是用 Microsoft .NET 实现 Sun 主要的 J2EE 蓝图应用程序 Sun Java Pet Store 同样的应用程序功能. 根据用 .NE ...

  3. C# TextBox实现全选

    A. 设置全局变量: 1.定义了个全局变量放本次点击的textbox的名字,默认为空. 2.textbox的Enter事件里SelectAll()一下 3.Click事件里判断全局变量是否是该text ...

  4. C#遍历文件名

    遍历文件名程序 //////////////////第一种方法///////////// static ArrayList GetAllFiles(string path) { ArrayList r ...

  5. 使用Windows2003创建AD服务器 - 进阶者系列 - 学习者系列文章

    Windows 2003的AD功能不是很强,但是还是提供了不错的功能.下面简要介绍下Windows 2003的AD配置说明. 1.  从添加删除Windows组件安装AD功能项 2.  完成安装.这里 ...

  6. Mysql 使用 select into outfile

    Mysql支持将查询结果到处 默认语法 select .. from table  into outfile "filepath\filename.txt"; 如果在执行的过程中遇 ...

  7. 【DateTime格式大全 】

    DateTime dt = DateTime.Now;//    Label1.Text = dt.ToString();//2005-11-5 13:21:25//    Label2.Text = ...

  8. JAVA 异常 throw 与 throws

    最近一直throw和throw new …… 获取头部罢工,要彻底生气清楚这件事,他对这个思想精华收集了很多网友.这里摘录. throws全部异常信息throw则是指抛出的一个详细的异常类型.通常在一 ...

  9. 安装系统提示选中的磁盘具有MBR分区表

    引用:http://jingyan.baidu.com/article/ff42efa9693e88c19e22020c.html 进入bios看到  UEFI状态时  Enabled 启用状态,那么 ...

  10. 实现透明渐变的Activity

    如果光是透明全屏的Activity的话,直接继承内置theme即可 <activity android:theme="@android:style/Theme.NoTitleBar.F ...