天天看點

Javascript URL中參數包含特殊字元的處理

有些符号在URL中是不能直接傳遞的,如果要在URL中傳遞這些特殊符号,那麼就要使用他們的編碼了,例如%指定特殊字元,編碼為%25、 #表示書簽,編碼為%23、 &表示參數間的分隔符,編碼為%26,由兩種方法解決:

(1)可以用replace方法替換成編碼

data2=data2.replace(/\%/g,"%25");

data2=data2.replace(/\#/g,"%23");

data2=data2.replace(/\&/g,"%26");

(g表示全局比對,即替換掉字元中所有的空格和換行,i表示忽略大小寫,gi表示全局比對并忽略大小寫)

(2)java提供了對文字進行編碼的3個函數:

escape

encodeURI

encodeURIComponent

主要用法有:

傳遞參數時需要使用encodeURIComponent,這樣組合的url才不會被#等特殊字元截斷,例如:url:'ViewBillers?outdata='+encodeURIComponent(outdata1),

進行url跳轉時可以整體使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

繼續閱讀