このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
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 2020年7月.
dotAll はRegExp インスタンスのアクセサープロパティで、正規表現でs フラグが使用されているかどうかを示します。
In this article
試してみましょう
const regex1 = /f.o/s;console.log(regex1.dotAll);// 予想される結果: trueconst regex2 = /bar/;console.log(regex2.dotAll);// 予想される結果: false解説
RegExp.prototype.dotAll の値はs フラグが使用されている場合はtrue、それ以外の場合はfalse です。s フラグは、ドット特殊文字 (.) が追加で行末記号 ("newline") 文字と一致することを示します。これ以外の場合は一致しません。
- U+000A LINE FEED (LF) (
\n) - U+000D CARRIAGE RETURN (CR) (
\r) - U+2028 LINE SEPARATOR
- U+2029 PARAGRAPH SEPARATOR
これは事実上、ドットが任意の UTF-16 コード単位に一致することを意味します。ただし、 Unicode 基本多言語面 (BMP) 外にある文字、いわゆるアストラル文字(アストラル文字はサロゲートペアで表され、 1 つではなく 2 つの. パターンでの一致が必要となります。
"😄".match(/(.)(.)/s);// Array(3) [ "😄", "\ud83d", "\ude04" ]u (unicode) フラグを使用すると、ドットがアストラル文字を単一文字として一致させることができます。
"😄".match(/./su);// Array [ "😄" ]なお、.* のようなパターンは、u フラグがなくても、より大きなコンテキストの一部としてアストラル文字を消費する能力があります。
"😄".match(/.*/s);// Array [ "😄" ]s フラグとu フラグを併用することで、ドットがより直感的な方法で任意の Unicode 文字に一致するようになります。
dotAll の設定アクセサーはundefined です。このプロパティを直接変更することはできません。
例
>dotAll の使用
const str1 = "bar\nexample foo example";const regex1 = /bar.example/s;console.log(regex1.dotAll); // trueconsole.log(str1.replace(regex1, "")); // foo exampleconst str2 = "bar\nexample foo example";const regex2 = /bar.example/;console.log(regex2.dotAll); // falseconsole.log(str2.replace(regex2, ""));// bar// example foo example仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-regexp.prototype.dotAll> |