HTML獲取連結中的引數(解決中文亂碼問題)
阿新 • • 發佈:2019-02-09
這是之前在網上找的一個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()方法的結果和連結裡面自動編碼的結果是一樣的。