Aller au contenu

Comprendre Unicode en JavaScript : Drapeaux et Classes

Introduction à Unicode

JavaScript prend en charge Unicode, une norme de codage des caractères qui permet de représenter du texte provenant de plusieurs langues et scripts. Unicode est essentiel pour développer des applications internationalisées et gérer efficacement des données textuelles variées. Dans ce chapitre, nous explorerons les drapeaux et classes Unicode en JavaScript, en examinant leur utilisation et en fournissant des exemples pratiques pour approfondir votre compréhension.

Le drapeau Unicode u

Le u flag active la correspondance Unicode complète dans les expressions régulières. Lorsqu'on utilise ce drapeau, JavaScript traite le motif comme sensible à Unicode, ce qui lui permet de reconnaître des caractères au-delà du Plan Multilingue de Base (BMP). Ce drapeau est particulièrement utile lors de la manipulation de caractères tels que les emojis, qui se trouvent en dehors du BMP.

Utilisation du drapeau u


Output appears here after Run.

Dans cet exemple, \uD83D\uDC4D représente un caractère Unicode. Sans le drapeau u, la regex a.b ne reconnaît pas correctement le caractère et échoue à le faire correspondre. Avec le drapeau u, la regex correspond correctement à la séquence en reconnaissant le caractère Unicode.

Combinaison du drapeau u avec d'autres drapeaux


Output appears here after Run.

Cet exemple montre la combinaison du drapeau u avec les drapeaux global (g) et insensible à la casse (i). La regex correspond correctement à A\uD83D\uDC4Db, illustrant comment le drapeau u peut être utilisé avec d'autres drapeaux pour une correspondance plus flexible.

Échappements de propriétés Unicode : \p{} et \P{}

Les échappements de propriétés Unicode offrent un moyen de faire correspondre des caractères en fonction de leurs propriétés Unicode. Cette fonctionnalité, introduite dans ECMAScript 2018, facilite la manipulation de types de caractères spécifiques.

Syntaxe des échappements de propriétés Unicode

  • \p{Property=Value} : Fait correspondre les caractères ayant la propriété spécifiée.
  • \P{Property=Value} : Fait correspondre les caractères n'ayant pas la propriété spécifiée.

Propriétés Unicode courantes

  1. Catégorie générale : Fait correspondre les caractères en fonction de leur catégorie générale.
    • \p{L} : Fait correspondre n'importe quelle lettre.
    • \p{N} : Fait correspondre n'importe quel nombre.
  2. Script : Fait correspondre les caractères en fonction de leur script.
    • \p{Script=Greek} : Fait correspondre les caractères grecs.
    • \p{Script=Han} : Fait correspondre les caractères Han (chinois, japonais, coréen).

Exemples d'échappements de propriétés Unicode


Output appears here after Run.

Ici, \p{L} fait correspondre n'importe quelle lettre. La regex \p{L}+ trouve toutes les séquences de lettres dans la chaîne 'Hello123', renvoyant ["Hello"].


Output appears here after Run.

Dans cet exemple, \p{N} fait correspondre n'importe quel nombre. La regex \p{N}+ extrait toutes les séquences de chiffres de la chaîne 'Hello123', ce qui donne ["123"].


Output appears here after Run.

Cet exemple utilise \p{Script=Greek} pour faire correspondre les caractères grecs. La regex correspond avec succès à la chaîne grecque 'αβγδε'.

WARNING

L'utilisation des échappements de propriétés Unicode peut impacter les performances, en particulier avec de grandes quantités de données textuelles. Optimisez vos expressions régulières et testez leurs performances dans votre cas d'utilisation spécifique.

Applications pratiques

Validation des saisies utilisateur

Les échappements de propriétés Unicode permettent de valider les saisies utilisateur avec plus de précision, en s'assurant que seuls les caractères autorisés sont acceptés.


Output appears here after Run.

Cette regex garantit qu'un nom d'utilisateur valide commence par au moins deux lettres, suivies de toute combinaison de lettres et de chiffres. 'User123' passe la validation, tandis que '123User' ne la passe pas.

Extraction de caractères spécifiques

Vous pouvez extraire des types de caractères spécifiques d'une chaîne en utilisant des échappements de propriétés Unicode.


Output appears here after Run.

Dans cet exemple, \p{L}+ fait correspondre toutes les séquences de lettres dans la chaîne 'Hello, κόσμε!', renvoyant ["Hello", "κόσμε"].

INFO

Utilisez toujours le drapeau u avec les échappements de propriétés Unicode

Lors de l'utilisation d'échappements de propriétés Unicode, activez toujours le drapeau u pour garantir une correspondance correcte. Sans ce drapeau, les échappements de propriétés généreront une SyntaxError.


Output appears here after Run.

Conclusion

Comprendre et utiliser Unicode en JavaScript est essentiel pour développer des applications robustes et internationalisées. En tirant parti du drapeau u et des échappements de propriétés Unicode, vous pouvez gérer plus efficacement des données textuelles variées et effectuer des correspondances de caractères précises. Intégrez ces techniques dans vos projets pour améliorer leurs fonctionnalités et garantir qu'ils répondent aux normes mondiales.

Practice

Que modifie le drapeau 'u' dans les expressions régulières JavaScript ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.