RegExp.prototype.dotAll
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2020.
Die Eigenschaft dotAll
von RegExp
Instanzen gibt zurück, ob das s
-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.
Probieren Sie es aus
const regex1 = /f.o/s;
console.log(regex1.dotAll);
// Expected output: true
const regex2 = /bar/;
console.log(regex2.dotAll);
// Expected output: false
Beschreibung
RegExp.prototype.dotAll
hat den Wert true
, wenn das s
-Flag verwendet wurde; andernfalls false
. Das s
-Flag zeigt an, dass das Punkt-Sonderzeichen (.
) zusätzlich die folgenden Zeilenendzeichen in einem String erfüllen soll, die es sonst nicht erfüllen würde:
- U+000A LINE FEED (LF) (
\n
) - U+000D CARRIAGE RETURN (CR) (
\r
) - U+2028 LINE SEPARATOR
- U+2029 PARAGRAPH SEPARATOR
Dies bedeutet effektiv, dass der Punkt jede UTF-16-Codeeinheit erfüllt. Er erfüllt jedoch nicht Zeichen, die außerhalb der Unicode Basic Multilingual Plane (BMP) liegen, auch bekannt als astrale Zeichen, die als Surrogatpaare dargestellt werden und das Übereinstimmen mit zwei .
-Mustern anstelle von einem erfordern.
"😄".match(/(.)(.)/s);
// Array(3) [ "😄", "\ud83d", "\ude04" ]
Das u
(unicode) Flag kann verwendet werden, um dem Punkt zu erlauben, astrale Zeichen als einzelnes Zeichen zu erfüllen.
"😄".match(/./su);
// Array [ "😄" ]
Beachten Sie, dass ein Muster wie .*
immer noch in der Lage ist, astrale Zeichen als Teil eines größeren Kontexts zu konsumieren, auch ohne das u
-Flag.
"😄".match(/.*/s);
// Array [ "😄" ]
Die gleichzeitige Verwendung der s
- und u
-Flags ermöglicht es, dass der Punkt jedes Unicode-Zeichen auf eine intuitivere Weise erfüllt.
Der Set-Accessor von dotAll
ist undefined
. Sie können diese Eigenschaft nicht direkt ändern.
Beispiele
Verwendung von dotAll
const str1 = "bar\nexample foo example";
const regex1 = /bar.example/s;
console.log(regex1.dotAll); // true
console.log(str1.replace(regex1, "")); // foo example
const str2 = "bar\nexample foo example";
const regex2 = /bar.example/;
console.log(regex2.dotAll); // false
console.log(str2.replace(regex2, ""));
// bar
// example foo example
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-get-regexp.prototype.dotAll |