這是之前在網上找的一個HTML頁面獲取鏈接後面的參數的例子,本人覺得寫的很好,一直在用,下面粘貼上js源碼:
var LocString=String(window.document.location.href);
function GetQueryString(str){
var rs=new RegExp("(^|)"+str+"=([^&]*)(&|$)","gi").exec(LocString),tmp;
if(tmp=rs)return tmp[2];
return "沒有這個參數";
}
alert("日記名稱:"+GetQueryString("name"));
alert("分類編號:"+GetQueryString("hehe"));
alert("所在頁數:"+GetQueryString("hh"));
相信大家一看就懂了,但是這裏面還涉及到一個問題就是如果鏈接中存在中文的話,會自動被轉碼。
取中文參數需要解碼,比如上面的日記名稱如果是中文的話:
var name= decodeURI(GetQueryString("name"));
alert("日記名稱:"+name);
這樣alert的值纔是中文的。順便普及兩個知識點,上面說的鏈接中的中文會被自動編碼。其實我們也可以自己手動進行編碼,防止在中文數據在傳輸變亂碼。
這裏就涉及到java和js的兩種轉碼方式,其實用的方法都是一樣的。
Java方法:
java.net.URLDecoder.decode(URIString, "UTF-8"); //按照utf-8進行解碼
java.net.URLEncoder.encode(URIString, "UTF-8"); //按照utf-8進行編碼
js方法
decodeURI() //解碼
encodeURI() //編碼
這裏encodeURI()方法的結果和鏈接裏面自動編碼的結果是一樣的。