轉義函數:1、escape()函數,可將所有空格、標點、重音符號以及其他非ASCII字元以「%xx」十六進位序列碼取代;2、encodeURI()函數,可把字串當作URI來編碼;3、encodeURIComponent()函數。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
js中有很多函數可以用來轉義和反轉義,如escape()和unescape()、encodeURI()和decodeURI()、encodeURIComponent()和decodeURIComponent()等。
1.escape()和unescape()
# escape()函數將參數轉換為字串,並以URL編碼的格式進行編碼。在這種格式中,所有空格、標點、重音符號以及其他非ASCII字元都要%xx十六進位序碼取代。如空格的返回時 。
escape(param);
參數param是轉換為字串並以URL編碼格式進行編碼的表達式。
unescape()功能恰好相反,將URL編碼格式字串進行解碼傳回字串。
unescape(param);
例如:
escape("Hello{[World]}");
轉義結果為:
Hello%7B%5BWorld%5D%7D
unescape("Hello%7B%5BWorld%5D%7D")
回傳結果:
Hello{[World]}
缺點:escape()和unescape()只能處理ASCII字符,不建議使用這兩個方法進行轉義、解碼。
2.encodeURI()和decodeURI()
encodeURI()函數將文字字串編碼為一個有效的統一資源標識符(URI)。而decodeURI()將URI解碼為一般字串。
encodeURI(param);
param是一個將被編碼的字串
decodeURI(param);
恰恰相反
#例如:
encodeURI("Hellow{[World]}")
轉義結果為:Hello{[World]}
decodeURI("Hello{[World ]}")
回傳結果:Hello{[World]}。
注意:
encodeURI()函數單靠自身不能形成HTTP GET請求或POST請求,因為&、 、=都不會被轉碼,這幾個字元在GET或POST請求中被當作特殊字元對待。
3.encodeURIComponent()和decodeURIComponent()
這兩個函數也是用來編碼和解碼
decodeURIComponent(URIString)
URIString為一個已編碼的URI元件。
encodeURIComponent(URIString)
範例:
var aa='哈哈+呵呵'; encodeURIt(aa) //'哈哈 呵呵' encodeURIComponent(aa) //'哈哈+呵呵'
encodeURIComponent()可以轉換除英文字母、數字、-、_、.、!、~、*、'、(、)外的所有字元
更多程式相關知識,請造訪:程式設計影片! !
以上是javascript轉義函數有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!