このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
RegExp.prototype.unicodeSets
Baseline 2023Newly available
Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
unicodeSets はRegExp インスタンスのアクセサープロパティで、この正規表現にv フラグが使用されているかどうかを返します。
In this article
試してみましょう
const regex1 = /[\p{Lowercase}&&\p{Script=Greek}]/;const regex2 = /[\p{Lowercase}&&\p{Script=Greek}]/v;console.log(regex1.unicodeSets);// 予想される結果: falseconsole.log(regex2.unicodeSets);// 予想される結果: true解説
RegExp.prototype.unicodeSets はv フラグが使用されている場合はtrue を、そうでない場合はfalse を返します。v フラグはu フラグを「アップグレード」したもので、Unicode 関連の機能をより有効にするものです(u とv は同じ正規表現を互換性のない方法で解釈するので、両方のフラグを使用するとSyntaxError になります。)v フラグを使用すると、u フラグの説明で述べたすべての機能に加えて、以下の機能が得られます。
\pエスケープシーケンスは、文字だけでなく、文字列のプロパティにも一致します。- 文字クラス構文がアップグレードされ、複数の Unicode 文字の照合だけでなく、交差、和集合、差集合の構文ができるようになります。
- 文字クラスの補集合の構文
[^...]は、一致結果を否定する代わりに補集合クラスを構築し、大文字小文字を区別しない照合との混乱を避けることができます。詳しくは補集合クラスと大文字小文字を区別しない照合を参照してください。
一部のu モードの正規表現はv モードで無効になることがあります。具体的には、文字クラスの構文が異なり、文字通りに表示できない文字があります。詳しくはv モード文字クラスを参照してください。
メモ:vモードは書記素クラスターを 1 文字として解釈しません。例えば、/[🇺🇳]/v は"🇺" に一致します。
unicodeSets の設定アクセサーはundefined です。このプロパティを直接変更することはできません。
例
>unicodeSets プロパティの使用
const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;console.log(regex.unicodeSets); // true仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-regexp.prototype.unicodesets> |