Leçons du module (4/4)
Unicode property escapes
Les classes \w, \d, \s en ASCII ne suffisent pas pour les textes français, italiens, grecs ou les emojis. Le JavaScript moderne (avec le drapeau u -- Unicode) propose des échappements de propriétés \p{...} : des classes sémantiques basées sur les propriétés Unicode des caractères.
Pattern: \p{L}+ (avec le drapeau u)
Sample: Ciao caffe' über世界
^^^^ ^^^^^^^ ^^^^ ^^^^\p{L} = "n'importe quelle Lettre (Unicode)" : comprend les lettres accentuées, les idéogrammes chinois, le cyrillique, le grec… tout. Les plus courants :
\p{L}-- lettre (de n'importe quel alphabet).\p{N}-- nombre (chiffres arabes, romains, indiens…).\p{P}-- ponctuation.\p{S}-- symbole (mathématique, devise, emoji…).\p{Z}-- espace/séparateur.\p{Script=Latin}-- spécifiquement l'alphabet latin.\p{Script=Greek}-- l'alphabet grec. Et ainsi de suite.
Et les versions inversées \P{L}multi_replace_file_content, \P{N}, …
Différence avec \w et \d
\w correspond à [A-Za-z0-9_] -- ASCII uniquement, pas de "caffe'"
\p{L}\p{N}_ avec le drapeau u -- inclut les caractères accentuésPour un analyseur robuste de texte français, préférez \p{L} à \w :
citémulti_replace_file_content, café, garçon correspondent correctement en tant que mots.
Propriétés Unicode et compatibilité du navigateur
Les propriétés Unicode comme \\p{L} (Lettres) ou \\p{Script=Latin} étendent les classes aux alphabets internationaux. En JavaScript, elles nécessitent strictement le drapeau u (ou v), sinon le moteur lève une erreur de syntaxe.
À vous de jouer
Trouvez chaque mot, y compris ceux avec des accents (citta', perche', e' …). Utilisez l'échappement de propriété \p{L} avec le drapeau u.
Afficher l'indice
Remplacez \w+ par \p{L}+ et ajoutez le drapeau u (en plus de g).
Solution disponible après 3 tentatives
Exercice de révision
Trouvez chaque symbole Unicode (devises, mathématiques, emojis) dans le texte, à l'exclusion des lettres et des chiffres.
Afficher l'indice
\p{S} correspond à la catégorie Symbol d'Unicode. N'oubliez pas le drapeau u.
Solution disponible après 3 tentatives
Défi supplémentaire
Trouvez tous les mots constitués de lettres de l'alphabet cyrillique à l'aide de `p{Script=Cyrillic}`.
Afficher l'indice
Utilisez \p{Script=Cyrillic} avec le quantificateur + et le drapeau u.
Solution disponible après 3 tentatives