RegExp : propriété dotAll
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 juillet 2020.
La propriété d'accesseur dotAll des instances de RegExp indique si le marqueur "s" est utilisé pour cette expression rationnelle.
Exemple interactif
const regex1 = /f.o/s;
console.log(regex1.dotAll);
// Résultat attendu : true
const regex2 = /truc/;
console.log(regex2.dotAll);
// Résultat attendu : false
Description
RegExp.prototype.dotAll a une valeur true si l'indicateur s est utilisé ; sinon, false. L'indicateur s indique que le caractère spécial point (.) doit également correspondre aux caractères de saut de ligne (« newline ») dans une chaîne de caractères, pour lesquels il ne correspond pas autrement :
- U+000A LINE FEED (LF) (
\n) - U+000D CARRIAGE RETURN (CR) (
\r) - U+2028 LINE SEPARATOR
- U+2029 PARAGRAPH SEPARATOR
Cela signifie ainsi que le point peut correspondre à n'importe quel caractère UTF-16. Cependant, il ne correspond pas aux caractères situés en dehors du plan multilingue de base Unicode (BMP), également appelés caractères astraux, qui sont représentés sous forme de paires de substitution et nécessitent une correspondance avec deux motifs . au lieu d'un seul.
"😄".match(/(.)(.)/s);
// Array(3) [ "😄", "\ud83d", "\ude04" ]
L'indicateur u (unicode) peut être utilisé pour permettre au point de correspondre aux caractères astraux en tant que caractère unique.
"😄".match(/./su);
// Array [ "😄" ]
Notez qu'un motif tel que .* est toujours capable de consommer des caractères astraux dans le cadre d'un contexte plus large, même sans l'indicateur u.
"😄".match(/.*/s);
// Array [ "😄" ]
L'utilisation conjointe des indicateurs s et u permet au point de correspondre à n'importe quel caractère Unicode de manière plus intuitive.
L'accesseur en écriture de dotAll est undefined. Vous ne pouvez pas modifier cette propriété directement.
Exemples
>Utiliser dotAll
const str1 = "truc\nexemple toto exemple";
const regex1 = /truc.exemple/s;
console.log(regex1.dotAll); // true
console.log(str1.replace(regex1, "")); // toto exemple
const str2 = "truc\nexemple toto exemple";
const regex2 = /truc.exemple/;
console.log(regex2.dotAll); // false
console.log(str2.replace(regex2, ""));
// truc
// exemple toto exemple
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-get-regexp.prototype.dotAll> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation de l'indicateur
dotAlldanscore-js(angl.) - La propriété
RegExp.prototype.lastIndex - 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 - La propriété
RegExp.prototype.unicode