SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
RegExp | |
Propriétés: $[1..9] (sous-expressions entre parenthèses) Méthodes:exec() (appliquer une expression régulière)test() (appliquer une expression régulière pour essayer) |
|
Les expressions régulières servent à formuler des critères de recherche pour des recherches dans des chaînes de caractères et pour remplacer les occurrences par d'autres.
Vous pouvez utiliser des expressions régulières en JavaScript directement dans les méthodes correspondantes de l'objet string, à savoir dans les méthodes:
match()
replace()
search().
Là est décrit comment et où vous pouvez utiliser exactement des expressions régulières pour parcourir des chaînes de caractères et en remplacer des parties.
En revanche, vous n'avez besoin de l'objet RegExp
de JavaScript que si vous voulez créer et modifier de façon dynamique des expressions régulières pendant l'exécution du script. Pour cela, il vous faut définir une instance de l'objet RegExp
. Vous pouvez ensuite utiliser sur cette instance les propriétés et méthodes de l'objet RegExp
qui sont décrites ici.
<html><head><title>Test</title> <script type="text/javascript"> <!-- function sortie(valeur) { var expression = /(\w.+)\s(\w.+)/; expression.exec(valeur); alert(RegExp.$2 + ", " + RegExp.$1); } //--> </script> </head><body> <form action=""> <input name="User" value="Prénom Nom"> <input type="button" value="sortie" onClick="sortie(this.form.User.value)"> </form> </body></html> |
L'exemple montre comment un nom sous la forme "prénom nom" se laisse transformer en "nom, prénom" en utilisant une expression régulière.
L'exemple contient un formulaire avec un champ de saisie et un bouton. Dans le champ de saisie, l'utilisateur doit entrer son nom sous la forme "prénom nom". Le champ est déjà prédéfini à cet effet. En cliquant sur le bouton, la fonction sortie()
, définie dans l'entête de fichier, est appelée. La fonction reçoit comme paramètre le contenu du champ de saisie.
Dans la fonction est définie une expression régulière (expression de recherche), qui est sauvegardée dans la variable expression
. De telles expressions régulières sont incluses dans des barres obliques simples /.../
. L'expression régulière de l'exemple ci-dessus est à lire ainsi: Recherche un nombre de lettres contiguës sans chiffre ni signe de paragraphe et retiens le résultat = (\w.+)
. Recherche ensuite un espace distinct =\s
. Recherche ensuite encore une fois un nombre de lettres contiguës et retiens le résultat = (\w.+)
. De cette façon, le schéma "prénom nom" a été trouvé. Les parenthèses autour de (\w.+)
ont pour conséquence que les deux suites de lettres contiguës soient distinguées en interne comme parties distinctes. Plus tard, ces parties distinctes sont adressables séparément.
La commande suivante de l'exemple emploie une méthode importante de l'objet RegExp
sur l'expression régulière définie auparavant, à savoir la méthode exec()
. Elle permet d' "exécuter" l'expression et de l'affecter à l'objet RegExp
. Dans l'exemple, on accède avec RegExp.$2
directement à la deuxième partie entre parenthèses, distinguée auparavant en interne, et avec RegExp.$1
à la première de ces expressions. De par leur alignement avec une virgule entre les deux est obtenu que la suite entrée "prénom nom" s'affiche ensuite avec alert()
selon l'autre schéma "nom, prénom" .
Le tableau suivant montre de quelles composantes vous pouvez former une expression régulière.
|
Vous pouvez trouvez d'autres informations éventuellement plus complètes sur les expressions régulières dans cette documentation à la page expressions régulières en Perl.
Sauvegarde les parties constituantes marquées d'une expression régulière, donc les parties entre parenthèses.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var versioncomp = /(\d)/; versioncomp.exec(navigator.userAgent); document.write("Le numéro de version complet de votre navigateur est: " + RegExp.$1); //--> </script> </body></html> |
L'exemple définit une expression régulière nommée versioncomp
, qui recherche la première apparition d'un chiffre et se note l'occurrence par une parenthèse = (\d)
. Cette expression régulière est alors utilisée sur la propriété d'objet navigator.userAgent, qui sauvegarde les mentions sur le navigateur de l'utilisateur. Comme cette valeur suit un certain schéma, il est clair que le premier chiffre qu'elle contient représente la version complète (à condition que le chiffre n'ait qu'une position). Dans l'exemple, le numéro de version trouvé est écrit dans le fichier de façon dynamique. Pour ce faire, il est accédé directement par l'objet RegExp
à la propriété $1
. C'est la première expression partielle distinguée entre parenthèses de l'expression régulière actuelle, dans l'exemple donc le numéro de version.
Applique une expression régulière à une chaîne de caractères.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var phrase = "Sur le mur"; var recherche = /(ur)/g; var resultat = recherche.exec(phrase); document.write(resultat.length + " occurrences"); //--> </script> </body></html> |
L'exemple démontre la relation: une expression régulière est définie - dans l'exemple: une expression régulière nommée recherche
. Avec une instruction comme recherche.exec()
, vous pouvez ensuite commencer la recherche. Comme paramètre, c'est généralement l'expression dans laquelle il faut chercher qui est transmise à la méthode. La méthode retourne les occurrences trouvées. La variable dans laquelle est sauvegardée la valeur retournée (dans l'exemple la variable resultat
) se transforme automatiquement en tableau si plus d'une occurrence est trouvée. Dans l'exemple, deux occurrences ont été trouvées. C'est pourquoi la propriété d'array
length
peut s'appliquer à la variable resultat
.
Teste à l'avance si une expression régulière trouvera des occurrences ou non. Renvoie true
, si quelque chose a été trouvé et false
dans le cas contraire.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var phrase = "Sur le mur"; var recherche = /(quelquechose)/g; var resultat = recherche.test(phrase); if(resultat == false) document.write("rien n'a été trouvé"); //--> </script> </body></html> |
L'exemple définit une expression régulière nommée recherche
et l'applique avec la méthode test()
sur la variable phrase
. La valeur retournée est sauvegardée dans la variable resultat
. Si aucune occurrence n'a été trouvée, un avis correspondant est écrit. Dans l'exemple, c'est le cas.
Screen | |
Number | |
SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
© 2001 Stefan Münz / © 2003 Traduction Serge François, 13405@free.fr
selfhtml@fr.selfhtml.org