RegExp : propriété unicode
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 2016.
La propriété d'accesseur unicode des instance de RegExp retourne que l'indicateur u est utilisée ou non avec cette expression rationnelle.
Exemple interactif
const regex1 = /\u{61}/;
const regex2 = /\u{61}/u;
console.log(regex1.unicode);
// Résultat attendu : false
console.log(regex2.unicode);
// Résultat attendu : true
Description
RegExp.prototype.unicode a la valeur true si l'indicateur u a été utilisé ; sinon, false. L'indicateur u active diverses fonctionnalités liées à Unicode. Avec l'indicateur « u » :
- Toute échappement de point de code Unicode (
\u{xxxx},\p{UnicodePropertyValue}) est interprétée comme telle au lieu d'être un simple échappement d'identité. Par exemple,/\u{61}/ucorrespond à"a", mais/\u{61}/(sans l'indicateuru) correspond à"u".repeat(61), où le\uest équivalent à un simpleu. - Les assertions de limite de tampon (
\A,\z,\Z) sont interprétées comme telles au lieu d'être des simples échappements d'identité. - Les paires de substitution sont interprétées comme des caractères entiers au lieu de deux caractères séparés. Par exemple,
/[😄]/une correspond qu'à"😄"mais pas à"\ud83d". - Lorsque
lastIndexest automatiquement avancé (comme lors de l'appel deexec()), les expressions rationnelles Unicode avancent par points de code Unicode au lieu d'unités de code UTF-16.
Il existe d'autres changements dans le comportement de l'analyse qui empêchent d'éventuelles erreurs de syntaxe (qui sont analogues au mode strict pour la syntaxe des expressions rationnelles). Ces syntaxes sont toutes obsolètes et conservées uniquement pour la compatibilité web, et vous ne devez pas vous y fier.
L'accesseur définit unicode sur undefined. Vous ne pouvez pas modifier cette propriété directement.
Mode sensible à l'Unicode
Lorsque nous faisons référence au mode sensible à l'Unicode, nous entendons que l'expression rationnelle a soit l'indicateur u, soit l'indicateur v, auquel cas l'expression rationnelle active les fonctionnalités liées à Unicode (telles que l'échappement de classe de caractères Unicode) et a des règles de syntaxe beaucoup plus strictes. Comme u et v interprètent la même expression rationnelle de manière incompatible, l'utilisation des deux indicateurs entraîne une SyntaxError.
De même, une expression rationnelle est insensible à l'Unicode si elle n'a ni l'indicateur u ni l'indicateur v. Dans ce cas, l'expression rationnelle est interprétée comme une séquence d'unités de code UTF-16, et il existe de nombreuses syntaxes héritées qui ne deviennent pas des erreurs de syntaxe.
Exemples
>Utiliser la propriété unicode
const regex = /\u{61}/u;
console.log(regex.unicode); // true
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-get-regexp.prototype.unicode> |
Compatibilité des navigateurs
Voir aussi
- La propriété
RegExp.prototype.lastIndex - La propriété
RegExp.prototype.dotAll - La propriété
RegExp.prototype.global - La propriété
RegExp.prototype.hasIndices - La propriété
RegExp.prototype.ignoreCase - La propriété
RegExp.prototype.multiline - La propriété
RegExp.prototype.source - La propriété
RegExp.prototype.sticky