jquery给url新增、修改、查询

admin9年前程序心得1850
(function ($) {
	 $.extend({
	  Request: function (m) {
	   var sValue = location.search.match(new RegExp("[\?\&]" + m + "=([^\&]*)(\&?)", "i"));
	   return sValue ? sValue[1] : sValue;
	  },
	  UrlUpdateParams: function (url, name, value) {
	   var r = url;
	   if (r != null && r != 'undefined' && r != "") {
	    value = encodeURIComponent(value);
	    var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
	    var tmp = name + "=" + value;
	    if (url.match(reg) != null) {
	     r = url.replace(eval(reg), tmp);
	    }
	    else {
	     if (url.match("[\?]")) {
	      r = url + "&" + tmp;
	     } else {
	      r = url + "?" + tmp;
	     }
	    }
	   }
	   return r;
	  }
	 
	 });
	})(jQuery);
	
	/*
 * url 目标url
 * arg 需要替换的参数名称
 * arg_val 替换后的参数的值
 * return url 参数替换后的url
 */
function changeURLArg(url,arg,arg_val){
   var pattern=arg+'=([^&]*)';
   var replaceText=arg+'='+arg_val;
   if(url.match(pattern)){
      var tmp='/('+ arg+'=)([^&]*)/gi';
      tmp=url.replace(eval(tmp),replaceText);
      return tmp;
   }else{
      if(url.match('[\?]')){
         return url+'&'+replaceText;
      }else{
         return url+'?'+replaceText;
      }
   }
   return url+'\n'+arg+'\n'+arg_val;
}

//获取url中的参数
function getUrlParam(name) {
    var url=window.location.href;
    if(url.indexOf('?')<0){                //处理pathinfo格式的url
        var path=window.location.pathname;
        var url_arr=new Array();
        url_arr=path.split('/');
        var cur_index=url_arr.indexOf(name);
        var result=url_arr[cur_index+1];
        if(result !=null){return result;}else{return null;}
    }else{
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg);  //匹配目标参数
        if (r != null) return unescape(r[2]); return null; //返回参数值
    }
}

使用方法

1取值使用

$.Request("act") = 1

2.添加参数

$.UrlUpdateParams(window.location.href, "mid", 11111),


分享到:

相关文章

月薪3万的程序员都避开了哪些坑

程序员薪水有高有低,有的人一个月可能拿30K、50K,有的人可能只有2K、3K。同样有五年工作经验的程序员,可能一个人每月拿20K,一个拿5K。是什么因素导致了这种差异?我特意总结了容易导致薪水低的九...

npm ERR! Cannot read property 'match' of undefined 错误处理

跟往常一样运行npm install 的时候,突然报错。错误情况如下:npm ERR! Cannot read property 'match...

ios5的safari浏览器的电话号码识别功能的禁用

更详细的apple官方文档: https://developer.apple.com/library/safari/#featuredarticles/iPhoneURLScheme_Ref...

多行文字溢出[...]的实现(text-overflow: ellipsis)

多行文字溢出[...]的实现(text-overflow: ellipsis)

对于单行文字, 很简单. Css代码  .oneLine {      width: 20...

PHP代码优化

PHP代码效率优化发表于2013/9/24 17:50:06  490人阅读分类: Web1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$ro...

评论列表

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。