Visitar URL original
RegExp : propriété dotAll - JavaScript | MDN

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é 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.

js
"😄".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.

js
"😄".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.

js
"😄".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

js
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