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
S'il y a une paire de substitution dans l'ensemble, le marqueur `pattern:u` est requis pour qu'il fonctionne correctement.
149
+
S'il y a une paire de seizets d'indirection([surrogate pair](https://fr.wikipedia.org/wiki/Table_des_caract%C3%A8res_Unicode_(D000-DFFF))) dans l'ensemble, le marqueur `pattern:u` est requis pour qu'elle soit interprétée correctement.
150
150
151
151
Par exemple, cherchons `pattern:[𝒳𝒴]` dans la chaîne `subject:𝒳`:
152
152
@@ -155,9 +155,9 @@ alert( '𝒳'.match(/[𝒳𝒴]/) ); // affiche un caractère étrange qui resse
155
155
// (la recherche n'a pas fonctionné correctement, seulement la moitié du caractère est retourné)
156
156
```
157
157
158
-
Le résultat est erroné, car par défaut les expressions rationnelles "ne connaisse pas" les paires de substitutions.
158
+
Le résultat est erroné, car par défaut une expression rationnelle ne reconnait pas une telle paire.
159
159
160
-
Le moteur d'expression rationnelle pense que `[𝒳𝒴]` -- ne sont pas deux mais quatre caractères:
160
+
Le moteur d'expression rationnelle pense que `[𝒳𝒴]` -- ne sont pas deux mais quatre caractères:
161
161
1. la moitié gauche de `𝒳``(1)`,
162
162
2. la moitié droite de `𝒳``(2)`,
163
163
3. la moitié gauche de `𝒴``(3)`,
@@ -179,19 +179,19 @@ Mais si nous ajoutons le marqueur `pattern:u`, on aura alors le comportement att
179
179
alert( '𝒳'.match(/[𝒳𝒴]/u) ); // 𝒳
180
180
```
181
181
182
-
On retrouve ce même fonctionnement pour un intervalle, comme `[𝒳-𝒴]`.
182
+
On retrouve ce même fonctionnement dans un intervalle, comme `[𝒳-𝒴]`.
183
183
184
184
Si nous oublions le marqueur `pattern:u`, il y aura une erreur :
En effet sans le marqueur `pattern:u` les paires de substitutions sont perçues comme deux caractères distincts, donc `[𝒳-𝒴]` est interprété en `[<55349><56499>-<55349><56500>]` (chaque paire de substitution 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 l'erreur.
190
+
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.
191
191
192
192
Avec le marqueur `pattern:u` le modèle est interprété correctement :
0 commit comments