regular expressionNN 4 IE 4 ECMA 3

Un objet expression régulière est une instance de l'objet RegExp. Chaque objet expression régulière comprend un modèle permettant de trouver des correspondances au sein d'une chaîne. Les expressions régulières peuvent prendre la forme de simples chaînes ou d'expressions nettement plus puissantes utilisant une notation qui est un langage en soi. L'implémentation d'expressions régulières est très similaire en JavaScript 1.2 et en Perl. Plusieurs ouvrages sur JavaScript1.2. et versions ultérieures traitent de ces concepts.

 

Pour créer un objet expression régulière, faites précéder et suivre le modèle de barres obliques, puis affectez l'ensemble de l'expression à une variable. L'instruction suivante, par exemple, crée une expression régulière dont le modèle est un simple mot:

 

Plusieurs méthodes de recherche de modèle dans une chaîne permettent d'utiliser la variable re comme paramètre (vous pouvez également utiliser une expression directement comme paramètre de méthode au lieu de l'affecter à une variable).

 

La notation d'une expression régulière se compose également d'une série de métacaractères représentant des concepts parfois complexes (tels que la limite de part et d'autre d'un mot), des valeurs numériques ou un ou plusieurs caractères. Par exemple, pour rechercher la combinaison de caractères précités, pour autant qu'il s'agisse d'un mot (et non d'une partie d'un mot tel que “ salutations ”), la notation de l'expression régulière utilise des métacaractères pour indiquer que le modèle inclut, de part et d'autre, les limites du mot:

 

Le tableau suivant est un exemple de notation d'expression régulière utilisée dans JavaScript 1.2:

 

Lorsque vous créez une expression régulière, vous pouvez en déterminer le fonctionnement global (ce que vous ferez vraisemblablement si l'expression régulière effectue une opération de recherche et remplacement dans une méthode et que votre objectif est un résultat « Remplacer tout ») et ignorer la casse. Les modificateurs qui activent ces commutateurs sont les lettres g et i. Elles peuvent être utilisées individuellement ou conjointement dans gi.

 

Une fois le modèle défini à l'aide d'une notation d'expression régulière, l'action se déroule au niveau des méthodes de l'objet expression régulière et des méthodes de l'objet String qui reçoivent les paramètres d'expression régulière.

 
CaractèreCorrespond àExemple
\bLimite du mot/\bto/ correspond à "tomorrow"/to\b/ correspond à "Soweto"
\BIndépendant de la limite du mot/\Bto/ correspond à "stool" et "Soweto"/to\B/ correspond à "stool" et "tomorrow"
\dNombre compris entre 0 et 9/\d\d/ correspond à “ 42 ”
\DValeur non numérique/\D\D/ correspond à “ de ”
\sEspace blanc/sous\scommission/ correspond à “ sous commission ”
\SEspace non blanc/sous\Scommission/ correspond à “ sous-commission ”
\wLettre, nombre ou caractère de soulignement/1\w/ correspond à “ 1A ”
\WCaractère autre qu'une lettre, un nombre ou un caractère de soulignement/1\W/ correspond à “ 1% ”
.Tout caractère à l'exception d'une nouvelle ligne/../ correspond à "Z3"
[...]L'un des caractères figurant entre crochets/G[aeiou]i/ correspond à “ =Gai ”
[^...]Jeu de caractères annulé/G[^eiou]i/ correspond à “ Gai ”
*Zéro ou plusieurs fois/\d*/ correspond à “ ”, “ 5 ” ou “ 444 ”
?Zéro ou une seule fois/\d?/ correspond à “ ” ou “ 5 ”
+Une ou plusieurs fois/\d+/ correspond à “ 5 ” ou “ 444 ”
{n}Exactement “ n ” fois/\d{2}/ correspond à "55"
{n,}“ n ” ou plus de fois/\d{2,}/ correspond à “ 555 ”
{n,m}Au minimum “ n ” fois, au maximum “ m ” fois/\d{2,4}/ correspond à "5555"
^Au début d'une chaîne ou d'une ligne/^Pierre/ correspond à “ Pierre dit… ”
$A la fin d'une chaîne ou d'une ligne/Pierre.$/ correspond à “ Bienvenue, Pierre. ”
 
Propriétés
 
constructor global ignoreCase lastIndex source
 
Méthodes
 
compile() exec() test()
 
Création d'un objet expression régulière.
 
var regExpressionObj = /pattern/ [g | i | gi];
var regExpressionObj = new RegExp(["pattern", ["g" | "i" | "gi"]]);
constructorNN 4 IE 4 ECMA 3

Lecture/écriture

Reportez-vous à cette propriété de l´objet Array.

global, ignoreCaseNN 4 IE 5(Mac)/5.5(Win) ECMA 3

Lecture seule

Renvoie la valeur booléenne true si les modificateurs g ou i (respectivement) étaient définis au moment de la création de l´instance de l´objet de l´expression régulière qui les contient. Même si les deux modificateurs d'un objet expression régulière sont définis (gi), vous devez tester chaque propriété individuellement.

 
Exemple
 
if (myRE.global && myRE.ignoreCase) {
    ...
}
 
Valeur

Valeur booléenne: true | false.

lastIndexNN 4 IE 4 ECMA 3

Lecture/écriture

Valeur d'index à base zéro correspondant au caractère de la chaîne où commence la prochaine recherche du modèle. Dans une recherche, la valeur est égale à zéro. Vous pouvez également définir la valeur manuellement si vous souhaitez commencer à un autre emplacement ou omettre certains caractères.

 
Exemple
 
myRE.lastIndex = 30;
 
Valeur

Nombre entier.

sourceNN 4 IE 4 ECMA 3

Lecture seule

Renvoie une version, sous forme de chaîne, des caractères utilisés pour créer l'expression régulière. La valeur n'inclut pas les séparateurs qui entourent l'expression (barres obliques).

 
Exemple
 
var myREasString = myRE.source;
 
Valeur

Chaîne.

compile()NN 4 IE 4 ECMA s.o.

compile("pattern"[, "g" | "i" | "gi"])

Compile un modèle d'expression régulière en véritable objet expression régulière. Cette méthode est essentiellement utilisée pour recompiler une expression régulière dont le modèle peut changer durant l'exécution d'un script.

 
Paramètres
 
  • Tout modèle d'expression régulière sous forme de chaîne entre guillemets. Les modificateurs qui indiquent si l´expression a une validité global et si la la casse doit être ignorée ou si ils doivent être tous deux fournis sous la forme d´un paramètre entre guillemets.
 
Valeur renvoyée

Référence à un objet d´expression régulière.

exec()NN 4 IE 4 ECMA 3

exec(chaîne)

Effectue une recherche dans la chaîne passée en paramètre pour le modèle d'expression régulière considéré. Voici le format d'une séquence type:

var myRE = /somePattern/;
var resultArray = myRE.exec("someString");
 

Les propriétés de l'objet statique RegExp et de l´instance expression régulière (myRE dans l'exemple) sont mises à jour à l'aide des informations contenues dans le résultat de la recherche. En outre, la méthode exec() renvoie un tableau de données, dont le contenu est très similaire aux propriétés d'objet RegExp. Le tableau renvoyé contient les propriétés suivantes:

 

Vous pouvez placer les résultats de la méthode exec() dans une variable, tandis que les valeurs de la propriété RegExp changeront avec l'opération d'expression régulière suivante. Si l'expression régulière est définie pour effectuer une recherche globale, tout appel ultérieur à myRE.exec("someString") continue la recherche à partir de la position de la correspondance précédente.

 

Si la méthode exec() renvoie une valeur null, c'est qu'aucune correspondance n'a été trouvée.

 
Index à base zéro du premier caractère de la chaîne correspondant au modèle
Chaîne originale recherchée
Chaîne de caractères correspondant au modèle
Chaînes des résultats de composants entre parenthèses
 
Paramètres
 
  • Chaîne à rechercher.
 
Valeur renvoyée

Tableau reprenant les correspondances trouvées, le cas échéant; à défaut, la valeur renvoyée est null.

test()NN 4 IE 4 ECMA 3

test(chaîne)

Renvoie la valeur booléenne true s'il y a une correspondance, et false s'il n'y a pas de correspondance de l'expression régulière dans la chaîne transmise comme paramètre. Aucune autre information n'est disponible sur les résultats de la recherche. C'est la manière la plus rapide de déterminer si un modèle a une correspondance dans une chaîne.

 
Paramètres
 
  • Chaîne à rechercher.
 
Valeur renvoyée

Valeur booléenne: true | false.