Rumah >hujung hadapan web >tutorial js >Penjelasan terperinci tentang perbezaan antara fungsi pengekodan rentetan escape(), encodeURI(), dan encodeURIComponent() dalam kemahiran js_javascript
Terdapat tiga fungsi dalam JavaScript yang boleh mengekod rentetan, iaitu: escape, encodeURI, encodeURIComponent dan tiga fungsi penyahkodan yang sepadan:
unescape,decodeURI,decodeURIComponent.
Berikut ialah pengenalan ringkas tentang perbezaan mereka
1 fungsi escape()
Takrif dan penggunaan
Fungsiescape() mengekod rentetan supaya ia boleh dibaca pada semua komputer.
Tatabahasa
melarikan diri(rentetan)
Penerangan Parameter
rentetan diperlukan. Rentetan untuk dilepaskan atau dikodkan.
Nilai pulangan
Salinan rentetan yang dikodkan. Beberapa aksara ini digantikan dengan urutan pelarian heksadesimal.
Penerangan
Kaedah ini tidak mengekod huruf dan nombor ASCII, juga tidak mengekodkan aksara tanda baca ASCII berikut: -_
2 encodeURI() fungsi
Takrif dan penggunaanFungsi encodeURI() mengekod rentetan sebagai URI.
encodeURI(URIstring)
urirentetan diperlukan. Rentetan yang mengandungi URI atau teks lain untuk dikodkan.
Salinan rentetan URI, dengan beberapa aksara digantikan dengan urutan pelarian heksadesimal.
Kaedah ini tidak mengekod huruf dan nombor ASCII, juga tidak mengekodkan aksara tanda baca ASCII ini: - _ .
3 fungsi encodeURIComponent()
Fungsi encodeURIComponent() mengekod rentetan sebagai komponen URI.
encodeURIComponent(URIstring)
urirentetan diperlukan. Rentetan yang mengandungi komponen URI atau teks lain untuk dikodkan.
Salinan rentetan URI, dengan beberapa aksara digantikan dengan urutan pelarian heksadesimal.
Kaedah ini tidak mengekod huruf dan nombor ASCII, juga tidak mengekodkan aksara tanda baca ASCII ini: - _ .
Petua: Sila ambil perhatian bahawa fungsi encodeURIComponent() berbeza daripada fungsi encodeURI() kerana fungsi pertama mengandaikan bahawa argumennya adalah sebahagian daripada URI (seperti protokol, nama hos, laluan atau rentetan pertanyaan). Oleh itu, fungsi encodeURIComponent() melarikan diri daripada aksara tanda baca yang digunakan untuk memisahkan bahagian URI.
4 Ringkasan:
5 Contoh:
1 pelarian()
<script type="text/javascript"> document.write(escape("http://www.w3school.com.cn/") + "<br />") document.write(escape("?!=()#%&")) </script>输出: http%3A//www.w3school.com.cn %3F%21%3D%28%29%23%25%26
2 encodeURI()
<script type="text/javascript"> document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />") document.write(encodeURI("http://www.w3school.com.cn/My first/")) document.write(encodeURI(",/?:@&=+$#")) </script>输出: http://www.w3school.com.cn/ http://www.w3school.com.cn/My%20first/ ,/?:@&=+$#
3 encodeURIComponent()
<script type="text/javascript"> document.write(encodeURIComponent("http://www.w3school.com.cn/")) document.write("<br />") document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/")) document.write("<br />") document.write(encodeURIComponent(",/?:@&=+$#")) </script输出: http%3A%2F%2Fwww.w3school.com.cn http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F %2C%2F%3F%3A%40%26%3D%2B%24%23
<script language="javascript">document.write(' <a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>