Maison >interface Web >js tutoriel >Analyse approfondie des différences et exemples de compétences escape(), encodeURI(), encodeURIComponent()_javascript

Analyse approfondie des différences et exemples de compétences escape(), encodeURI(), encodeURIComponent()_javascript

WBOY
WBOYoriginal
2016-05-16 16:40:231132parcourir

Il existe trois fonctions en JavaScript qui peuvent encoder des chaînes, à savoir : escape, encodeURI, encodeURIComponent et les trois fonctions de décodage correspondantes : unescape, decodeURI, decodeURIComponent.

Ce qui suit est une brève introduction à leurs différences :

1 fonction escape()

Définition et usage

La fonction

escape() encode une chaîne afin qu'elle puisse être lue sur tous les ordinateurs.

Grammaire

évasion(chaîne)

Description du paramètre

chaîne Obligatoire. La chaîne à échapper ou à encoder.

Valeur de retour

Une copie de la chaîne encodée. Certains de ces caractères sont remplacés par des séquences d'échappement hexadécimales.

Description

Cette méthode n'encode pas les lettres et les chiffres ASCII, ni les caractères de ponctuation ASCII suivants : - _ . Tous les autres caractères seront remplacés par des séquences d'échappement.

2 fonction encodeURI()

Définition et usage

La fonction encodeURI() encode une chaîne sous forme d'URI.

Grammaire

encodeURI(URIstring)

Description du paramètre

URIstring obligatoire. Une chaîne contenant l'URI ou un autre texte à encoder.

Valeur de retour

Une copie de l'URIstring, avec certains caractères remplacés par des séquences d'échappement hexadécimales.

Description

Cette méthode n'encode pas les lettres et les chiffres ASCII, ni ces caractères de ponctuation ASCII : - _ .

Le but de cette méthode est d'encoder complètement l'URI, donc la fonction encodeURI() n'échappera pas aux signes de ponctuation ASCII suivants qui ont une signification particulière dans l'URI : ;/?:@&= $, #

3 Fonction encodeURIComponent()

Définition et usage

La fonction encodeURIComponent() encode une chaîne en tant que composant URI.

Grammaire

encodeURIComponent(URIstring)

Description du paramètre

URIstring obligatoire. Une chaîne contenant des composants URI ou un autre texte à encoder.

Valeur de retour

Une copie de l'URIstring, avec certains caractères remplacés par des séquences d'échappement hexadécimales.

Description

Cette méthode n'encode pas les lettres et les chiffres ASCII, ni ces caractères de ponctuation ASCII : - _ .

Les autres caractères (tels que :;/?:@&= $,# qui sont des signes de ponctuation utilisés pour séparer les composants URI) sont remplacés par une ou plusieurs séquences d'échappement hexadécimales.

Conseils et remarques

Astuce : Veuillez noter que la fonction encodeURIComponent() est différente de la fonction encodeURI() dans le sens où la première suppose que ses arguments font partie d'un URI (tel qu'un protocole, un nom d'hôte, un chemin ou une chaîne de requête). La fonction encodeURIComponent() échappe donc aux caractères de ponctuation utilisés pour séparer les parties de l'URI.

4Résumé :

Grâce à l'analyse des trois fonctions, nous pouvons savoir que escape() échappe à toutes les chaînes entrantes à l'exception des lettres ASCII, des chiffres et des symboles spécifiques. Par conséquent, si vous souhaitez encoder l'URL, il est préférable de ne pas l'utiliser. méthode. Et encodeURI() est utilisé pour coder l'intégralité de l'URI, car les caractères légaux de l'URI ne seront pas codés ni convertis. La méthode encodeURIComponent doit être la plus couramment utilisée lors de l'encodage d'un seul URIComponent (en référence aux paramètres de requête). Elle peut échapper aux caractères chinois et spéciaux dans les paramètres sans affecter l'intégralité de l'URL.

5 Exemple :

1 évasion()

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

Sortie :

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

Sortie :

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

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

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

Encode l'intégralité de l'URL, tandis que les identifiants spécifiques à l'URL ne sont pas transcodés.

3 encodeURIComponent()

Exemple 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>

Sortie :

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

Exemple 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>

Encodez les paramètres dans l'URL, car les paramètres sont également une URL. S'ils ne sont pas codés, cela affectera le saut de l'URL entière.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn