You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ici `pattern:[0-9A-F]` comporte deux intervalles : il recherche un caractère qui est soit chiffre entre `0` et `9` compris ou bien une lettre entre `A` et `F`compris.
45
+
Ici `pattern:[0-9A-F]` comporte deux intervalles : il recherche un caractère qui est soit chiffre entre `0` et `9` compris ou bien une lettre entre `A` et `F`comprise.
46
46
47
47
Si nous voulons y inclure les lettres minuscules, nous pouvons ajouter l'intervalle `a-f`: `pattern:[0-9A-Fa-f]`. Ou bien ajouter le marqueur `pattern:i`.
48
48
@@ -64,9 +64,9 @@ Par exemple:
64
64
65
65
Comme la classe de caractères `pattern:\w` est un raccourcis pour `pattern:[a-zA-Z0-9_]`, il ne peut pas trouver les idéogrammes chinois, ni les lettres cyrilliques, etc.
66
66
67
-
Nous pouvons écrire un modèle plus universel, qui cherche le caractère d'un mot quelle que soit la langue. On obtient facilement grâce aux propriétés Unicode : `pattern:[\p{Alpha}\p{M}\p{Nd}\p{Pc}\p{Join_C}]`.
67
+
Nous pouvons écrire un modèle plus universel, pour rechercher le caractère d'un mot quelle que soit la langue. Grâce aux propriétés Unicode, on obtient facilement : `pattern:[\p{Alpha}\p{M}\p{Nd}\p{Pc}\p{Join_C}]`.
68
68
69
-
Déchiffrons cela. De la même manière que`pattern:\w`, nous construisons notre propre ensemble qui contient les caractères qui portent les propriétés Unicode :
69
+
Déchiffrons cela. Tout comme`pattern:\w`, nous construisons notre propre ensemble qui contient les caractères qui portent les propriétés Unicode :
70
70
71
71
-`Alphabetic` (`Alpha`) - pour les lettres,
72
72
-`Mark` (`M`) - pour les accents,
@@ -85,7 +85,7 @@ let str = `Hi 你好 12`;
85
85
alert( str.match(regexp) ); // H,i,你,好,1,2
86
86
```
87
87
88
-
Bien sûr, nous pouvons modifier cet ensemble : ajouter ou retirer des propriétés Unicode. Plus de détail sur ces propriétés Unicode dans l'article <info:regexp-unicode>.
88
+
Cet ensemble est bien sûr encore modifiable : on peut y ajouter ou retirer des propriétés Unicode. Plus de détail sur ces propriétés Unicode dans l'article <info:regexp-unicode>.
89
89
90
90
```warn header="Les propriétés Unicode ne sont pas supportées par IE"
91
91
Les propriétés Unicode `pattern:p{…}` ne sont pas implémentées dans IE. Si nous en avons vraiment besoin, nous pouvons utiliser la librairie [XRegExp](http://xregexp.com/).
@@ -95,15 +95,15 @@ Ou simplement utiliser des intervalles de caractères dans la langue qui nous in
95
95
96
96
## Intervalles d'exclusion
97
97
98
-
En plus des intervalles classiques, existent les intervalles d'exclusion qui ressemblent à`pattern:[^…]`.
98
+
En plus des intervalles classiques, il existe des intervalles d'exclusion de la forme`pattern:[^…]`.
99
99
100
-
Ils se distinguent par un premier accent circonflexe `^` et correspond à n'importe quel caractère *à l'exception des caractères qui le suivent*.
100
+
Ils se distinguent par un premier accent circonflexe `^` et correspond à n'importe quel caractère *à l'exception de ceux contenus dans ces crochets*.
101
101
102
-
Par exemple:
102
+
Par exemple:
103
103
104
104
-`pattern:[^aeyo]` -- n'importe quel caractère sauf `'a'`, `'e'`, `'y'` ou `'o'`.
105
105
-`pattern:[^0-9]` -- n'importe quel caractère à l'exception des chiffres, équivalent à `pattern:\D`.
106
-
-`pattern:[^\s]` -- n'importe quel caractère qui n'est pas un espacement, équivalent à `\S`.
106
+
-`pattern:[^\s]` -- tout caractère qui n'est pas un espacement, équivalent à `\S`.
107
107
108
108
L'exemple ci-dessous cherche n'importe quel caractère n'étant pas une lettre, un chiffre ou un espace :
Habituellement, lorsque nous cherchons précisément un caractère spécial, nous devons l'échapper `pattern:\.`. Et si nous cherchons un backslash, nous utilisons `pattern:\\`, et ainsi de suite.
116
+
Habituellement, lorsque nous cherchons précisément un caractère spécial, nous devons l'échapper `pattern:\.`. Et si nous cherchons un backslash, nous utilisons `pattern:\\`, etc.
117
117
118
118
À l'intérieur de crochets nous pouvons utiliser une grande majorité des caractères spéciaux sans échappement :
En effet sans le marqueur `pattern:u`les paires de seizets sont perçues comme deux caractères distincts, donc `[𝒳-𝒴]` est interprété en `[<55349><56499>-<55349><56500>]` (chacune des paires est remplacée par ses codes). Il est maintenant évident que l'intervalle `56499-55349` n'est pas valide : le premier code `56499` est plus grand que la fin`55349`. Voilà la logique de cette erreur.
190
+
En effet sans le marqueur `pattern:u`une paire de seizets est perçue comme deux caractères distincts, donc `[𝒳-𝒴]` est interprété en `[<55349><56499>-<55349><56500>]` (chacune des paires est remplacée par ses codes). Il est maintenant évident que l'intervalle `56499-55349` n'est pas valide : le premier code `56499` est plus grand que le dernier`55349`. Ce qui explique l'erreur précédente.
191
191
192
192
Avec le marqueur `pattern:u` le modèle est interprété correctement :
0 commit comments