Rumah > hujung hadapan web > tutorial js > Analisis mendalam tentang perbezaan dan contoh kemahiran escape(), encodeURI(), encodeURIComponent()_javascript

Analisis mendalam tentang perbezaan dan contoh kemahiran escape(), encodeURI(), encodeURIComponent()_javascript

WBOY
Lepaskan: 2016-05-16 16:40:23
asal
1133 orang telah melayarinya

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 kepada perbezaan mereka:

1 fungsi melarikan diri()

Takrif dan penggunaan

Fungsi

escape() 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: - _ . Semua watak lain akan digantikan dengan urutan melarikan diri.

2 fungsi encodeURI()

Takrif dan penggunaan

Fungsi encodeURI() mengekod rentetan sebagai URI.

Tatabahasa

encodeURI(URIstring)

Penerangan Parameter

URIstring Diperlukan. Rentetan yang mengandungi URI atau teks lain untuk dikodkan.

Nilai pulangan

Salinan rentetan URI, dengan beberapa aksara digantikan dengan urutan pelarian heksadesimal.

Penerangan

Kaedah ini tidak mengekod huruf dan nombor ASCII, juga tidak mengekodkan aksara tanda baca ASCII ini: - _ .

Tujuan kaedah ini adalah untuk mengekod URI sepenuhnya, jadi fungsi encodeURI() tidak akan terlepas daripada tanda baca ASCII berikut yang mempunyai makna istimewa dalam URI: ;/?:@&= $, #

3 encodeURIComponent() fungsi

Takrif dan penggunaan

Fungsi encodeURIComponent() mengekod rentetan sebagai komponen URI.

Tatabahasa

encodeURIComponent(URIstring)

Penerangan Parameter

URIstring Diperlukan. Rentetan yang mengandungi komponen URI atau teks lain untuk dikodkan.

Nilai pulangan

Salinan rentetan URI, dengan beberapa aksara digantikan dengan urutan pelarian heksadesimal.

Penerangan

Kaedah ini tidak mengekod huruf dan nombor ASCII, juga tidak mengekodkan aksara tanda baca ASCII ini: - _ .

Aksara lain (seperti :;/?:@&= $,# yang merupakan tanda baca yang digunakan untuk memisahkan komponen URI) digantikan dengan satu atau lebih jujukan pelarian heksadesimal.

Petua dan Nota

Petua: Sila ambil perhatian bahawa fungsi encodeURIComponent() adalah 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:

Melalui analisis ketiga-tiga fungsi, kita dapat mengetahui bahawa escape() melarikan diri dari semua rentetan masuk kecuali huruf ASCII, nombor dan simbol tertentu Oleh itu, jika anda ingin mengekod URL, sebaiknya Jangan gunakan ini kaedah. Dan encodeURI() digunakan untuk mengekod keseluruhan URI, kerana aksara undang-undang dalam URI tidak akan dikodkan dan ditukar. Kaedah encodeURIComponent hendaklah yang paling biasa digunakan apabila mengekodkan satu URIComponent (merujuk kepada parameter permintaan Ia boleh melepaskan aksara Cina dan khas dalam parameter tanpa menjejaskan keseluruhan URL).

5 Contoh:

1 pelarian()

<script type="text/javascript">
document.write(escape("http://www.w3school.com.cn/") + "<br />")
document.write(escape("&#63;!=()#%&"))
</script>
Salin selepas log masuk

Output:

http%3A//www.w3school.com.cn

%3F%21%3D%28%29%23%25%26

Salin selepas log masuk

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(",/&#63;:@&=+$#"))
</script>
Salin selepas log masuk

Output:

http://www.w3school.com.cn/

http://www.w3school.com.cn/My%20first/

,/&#63;:@&=+$#

Salin selepas log masuk

Mengekodkan keseluruhan URL, manakala pengecam khusus URL tidak ditranskodkan.

3 encodeURIComponent()

Contoh 1:

<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(",/&#63;:@&=+$#"))
</script>
Salin selepas log masuk

Output:

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

Salin selepas log masuk

Contoh 2:

<script language="javascript">document.write('
<a href="http://passport.baidu.com/&#63;logout&aid=7&u='+encodeURIComponent(" rel="external nofollow" http://cang.baidu.com/bruce42")+'">退出</a>');</script>
Salin selepas log masuk

Enkodkan parameter dalam URL, kerana parameter tersebut juga merupakan URL Jika tidak dikodkan, ia akan menjejaskan lompatan keseluruhan URL.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan