昨天写的一个js方法,感觉还不错,作用就是给url增加参数。
举例说,我有个需求
我当前的url为 http://caijt.com/index.php?b=345
我想传个参数 a ,值为123的话,那么我就直接在后面增加 &a=123,可是如果我的url为 http://caijt.com/index.php?a=1&b=345,那我就得先判断是否已有参数 a 了
方法如下,url 为传入的 url 链接,name为参数名称,value为值,返回修改后的url,如果value为空的话,就会删除name这个参数
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42  | 
						function setUrlParam(url,name,value) {     var localUrl = url; 	if(value!=null){ 	    //增加或修改url参数 	    //判断URL是否带有?号 	    if (localUrl.indexOf("?") < 0) { 	        //判断url是否有# 	        var a=localUrl.indexOf("#"); 	        if(a<0){ 	            return localUrl + "?" + name + "=" + value; 	        }else{ 	            return localUrl.substring(0,a)+"?"+name+"="+value+localUrl.substring(a); 	        } 	    }else { 	        var regex = new RegExp("([\\?&]" + name + "=)[^&#]*"); 	        if (regex.test(localUrl)) { 	            return localUrl.replace(regex, "$1"+value); 	        }else { 	            var a=localUrl.indexOf("#"); 		        if(a<0){ 		            return localUrl + "&" + name + "=" + value; 		        }else{ 		            return localUrl.substring(0,a)+"&"+name+"="+value+localUrl.substring(a); 		        } 	    	} 		} 	}else{ 		//删除url的参数 		var regex = new RegExp("([\\?&])" + name + "=[^&#]*(&?)"); 		if (regex.test(localUrl)) { 			return localUrl.replace(regex, function(m,p1,p2){ 				if(p1=="?"){ 					return p2=="&"?"?":""; 				}else{ 					return p2; 				} 			}); 		}else{ 			return localUrl; 		} 	} }  | 
					
自我感觉,这个js方法还是很不错的,哈哈哈