reg = new RegExp('modele','option1', 'option2', ...);
reg = /modele/options
exec(chaine) | recherche le modèle dans la chaîne et retourne un tableau des correspondances | ECMA-262 ed. 3, JS 1.2 |
test(chaine) | renvoie true si une correspondance modèle-chaîne a été trouvée | ECMA-262 ed. 3, JS 1.2 |
exp = /jour/;
exp.test("bonjour tout le monde")
NB : les expressions rationnelles sont utilisées dans les méthodes de la classe String match, replace, search
. | tout caractère |
exp = /t.t./;
exp.test("toto")
exp.test("titi")
exp.test("tintin")
{n} | le car. qui précède doit apparaître n fois |
{n,} | il doit apparaître au moins n fois |
{n,m} | au moins n fois et au plus m fois. |
* | le caractère peut apparaître 0 ou n fois = {0,} |
+ | le caractère doit apparaître au moins une fois = {1,} |
? | le caractère doit apparaître 0 ou 1 fois = {0,1} |
exp = /zo{2}/;
exp.test("zo")
exp.test("zozo")
exp.test("zoo")
[abcd] | un caractère parmi ceux présents dans les crochets |
[a-z] | un caractère de l'intervalle |
[^cp] | interdit les caractères c et p |
\d | chiffre (\d{2} = nombre à deux chiffres) |
\D | équivalent à [^0-9] |
\w | lettres, chiffres, souligné |
\W | tout ce qui n'est pas lettre, chiffre, souligné |
\s | espace, retour à la ligne, retour chariot, tabulation |
\S | tout ce qui n'est pas espace... |
exp = /(\d{2}\s?){5}/;
exp.test("0491113521")
exp.test("04 91 11 35 21")
exp.test("0 4 9 1 1 1 3 5 2 1")
Lorsque le modèle est défini dans une chaîne il faut faire précéder
les motifs spéciaux tels que \ par un \
exp_a = new RegExp("\\d+");
exp_a.test("0491113521")
exp_b = new RegExp("\d+");
exp_b.test("0491113521")
\cA | caractère de contrôle, avec A un caractère (ex \cX = ctrl X) |
[\b] | caractère retour arrière (backspace) |
\f | saut de page (form feed) |
\n | saut de ligne (line feed) |
\r | retour chariot |
\t | tabulation |
\v | tabulation verticale |
\0 | caractère NUL |
exp = /\t/;
exp.test("bonjour tout\tle monde")
exp.test("bonjour tout le monde")
Pour mettre les caractères spéciaux * + ? . / \ dans une expression rationnelle il faut les faire précéder d'un \.
exp = /\?/;
exp.test("comment allez vous ?")
^ | correspondance en début de chaîne ou de ligne (mode m) |
$ | correspondance en fin de chaîne ou de ligne (mode m) |
\b | correspondance en début de mot |
\B | correspondance en fin de mot |
exp = /\d+/;
exp.test("numero du secretariat 0491113521 !")
exp = /^\d+/;
exp.test("numero du secretariat 0491113521 !")
exp.test("0491113521 !")
exp = /\d+$/;
exp.test("numero du secretariat 0491113521 !")
exp.test("numero du secretariat 0491113521")
(a)
(?:a)
a(!=b)
tel : 11.22.33.44.55
expression | résultat |
---|---|
(\d{2}\.?){5} | 11.22.33.44.55 |
(\d{2}\.?)+ | 11.22.33.44.55 |
(\d{2}\.)+ | 11.22.33.44. |
[23]+ | 22, 33 |
Objets inanimes, avez vous donc une
ame qui s'accroche a notre ame et la
force d'aimer ?
Lamartine
expression | résultat |
---|---|
ame | ame, ame |
a.e | ave, ame |
[a-zA-z]+ | Objets, inanimes, avez, vous, donc, ... |