Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

RegExp : propriété unicodeSets

Baseline
Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2023.

La propriété d'accesseur unicodeSets des instances de RegExp retourne si l'indicateur v est utilisé ou non avec cette expression rationnelle.

Exemple interactif

const regex1 = /[α-ω]/u;
const regex2 = /[\p{Lowercase}&&\p{Script=Greek}]/v;

console.log(regex1.unicodeSets);
// Résultat attendu : false

console.log(regex2.unicodeSets);
// Résultat attendu : true

Description

RegExp.prototype.unicodeSets a la valeur true si l'indicateur v a été utilisé ; sinon, false. L'indicateur v est une « mise à niveau » de l'indicateur u qui active davantage de fonctionnalités liées à Unicode. (« v » est la lettre suivante après « u » dans l'alphabet.) Comme u et v interprètent la même expression rationnelle de manière incompatible, l'utilisation des deux indicateurs entraîne une SyntaxError. Avec l'indicateur v, vous obtenez toutes les fonctionnalités mentionnées dans la description de l'indicateur u, plus :

  • La séquence d'échappement \p peut également être utilisée pour correspondre aux propriétés des chaînes de caractères, au lieu de se limiter aux caractères.
  • La syntaxe de classe de caractères est améliorée pour permettre les syntaxes d'intersection, d'union et de soustraction, ainsi que la correspondance de plusieurs caractères Unicode.
  • La syntaxe de complément de classe de caractères [^...] construit une classe complémentaire au lieu de nier le résultat de la correspondance, évitant certains comportements déroutants avec la correspondance insensible à la casse. Pour plus d'informations, voir Classes complémentaires et correspondance insensible à la casse.

Certaines expressions rationnelles valides en mode u deviennent invalides en mode v. Plus précisément, la syntaxe de la classe de caractères est différente et certains caractères ne peuvent plus apparaître littéralement. Pour plus d'informations, voir Classe de caractères en mode v.

Note : Le mode v n'interprète pas les grappes de graphèmes comme des caractères uniques ; elles restent constituées de plusieurs points de code. Par exemple, /[🇺🇳]/v peut toujours correspondre à "🇺".

L'accesseur définit unicodeSets sur undefined. Vous ne pouvez pas modifier cette propriété directement.

Exemples

Utiliser la propriété unicodeSets

js
const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;

console.log(regex.unicodeSets); // true

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-get-regexp.prototype.unicodesets

Compatibilité des navigateurs

Voir aussi