方法一:採用正則表達式獲取地址欄參數:javascript
function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return decodeURI(r[2]); return null; //decodeURI()是將encodeURI轉換的字符轉換回來 }
實用舉例:php
<a href="javascript:openWin('http://www.123.com/zfb_zhifu?money=100&name='+ encodeURI('實名認證'),'實名認證')"> 點擊這裏實名認證 </a>
可知URL:http://www.123.com/zfb_zhifu?money=100&name=實名認證html
在該頁面獲取money值和name值時,可調用函數GetQueryString(name)java
var url_money = GetQueryString(money); var url_name = GetQueryString(name); console.log(url_money);//100 console.log(url_name);//實名認證
--------------------------------------分割線------------------------------------正則表達式
方法二:傳統方法數組
function UrlSearch() { var name,value; var str=location.href; //取得整個地址欄 var num=str.indexOf("?") str=str.substr(num+1); //取得全部參數 stringvar.substr(start [, length ] var arr=str.split("&"); //各個參數放到數組裏 for(var i=0;i < arr.length;i++){ num=arr[i].indexOf("="); if(num>0){ name=arr[i].substring(0,num); value=arr[i].substr(num+1); this[name]=value; } } }
實用舉例:函數
<a href="javascript:openWin('http://www.123.com/zfb_zhifu?money=100&name='+ encodeURI('實名認證'),'實名認證')"> 點擊這裏實名認證 </a>
var my_url = new UrlSearch();//實例化 console.log(my_url.money);//100 console.log(decodeURI(my_url.name));//實名認證
參考網站:http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html測試
/* * 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; }
使用:網站
changeURLArg('http://www.daimajiayuan.com/test.php?class_id=3&id=2','class_id',4); this
修改結果:
http://www.daimajiayuan.com/test.php?class_id=4&id=2
參考網站:http://www.daimajiayuan.com/sitejs-17226-1.html
本文內容均親自測試使用過,請放心使用。若有問題,歡迎跟帖討論,我會及時回覆消息噠O(∩_∩)O~~