RegExp.prototype.unicodeSets

unicodeSetsRegExp インスタンスのアクセサープロパティで、この正規表現に v フラグが使用されているかどうかを返します。

解説

RegExp.prototype.unicodeSetsv フラグが使用されている場合は true を、そうでない場合は false を返します。v フラグは u フラグを「アップグレード」したもので、Unicode 関連の機能をより有効にするものです(uv は同じ正規表現を互換性のない方法で解釈するので、両方のフラグを使用すると SyntaxError になります。)v フラグを使用すると、u フラグの説明で述べたすべての機能に加えて、以下の機能が得られます。

  • \p エスケープシーケンスは、文字だけでなく、文字列のプロパティにも一致します。
  • 文字クラス構文がアップグレードされ、複数の Unicode 文字の照合だけでなく、交差、和集合、差集合の構文ができるようになります。
  • 文字クラスの補集合の構文 [^...] は、一致結果を否定する代わりに補集合クラスを構築し、大文字小文字を区別しない照合との混乱を避けることができます。詳しくは 補集合クラスと大文字小文字を区別しない照合を参照してください。

一部の u モードの正規表現は v モードで無効になることがあります。具体的には、文字クラスの構文が異なり、文字通りに表示できない文字があります。詳しくは v モード文字クラスを参照してください。

メモ: vモードは書記素クラスターを 1 文字として解釈しません。例えば、/[🇺🇳]/v"🇺" に一致します。

unicodeSets の設定アクセサーは undefined です。このプロパティを直接変更することはできません。

unicodeSets プロパティの使用

js
const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;

console.log(regex.unicodeSets); // true

仕様書

Specification
ECMAScript Language Specification
# sec-get-regexp.prototype.unicodesets

ブラウザーの互換性

BCD tables only load in the browser

関連情報