RegExp.prototype.unicodeSets

Die unicodeSets Zugriffseigenschaft von RegExp-Instanzen gibt an, ob das v-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.

Probieren Sie es aus

const regex1 = new RegExp("[\\p{Lowercase}&&\\p{Script=Greek}]");
const regex2 = new RegExp("[\\p{Lowercase}&&\\p{Script=Greek}]", "v");

console.log(regex1.unicodeSets);
// Expected output: false

console.log(regex2.unicodeSets);
// Expected output: true

Beschreibung

RegExp.prototype.unicodeSets hat den Wert true, wenn das v-Flag verwendet wurde, andernfalls false. Das v-Flag ist ein "Upgrade" des u-Flags, das zusätzliche Unicode-bezogene Funktionen ermöglicht. ("v" ist der nächste Buchstabe nach "u" im Alphabet.) Da u und v denselben regulären Ausdruck auf inkompatible Weise interpretieren, führt die Verwendung beider Flags zu einem SyntaxError. Mit dem v-Flag erhalten Sie alle im u-Flag beschriebenen Funktionen sowie:

  • Die \p-Escape-Sequenz kann zusätzlich verwendet werden, um Eigenschaften von Strings anstelle von nur einzelnen Zeichen zu matchen.
  • Die Zeichenklassen-Syntax wird aufgerüstet, um Schnittmengen-, Vereinigungs- und Subtraktions-Syntaxen sowie das Matching mehrerer Unicode-Zeichen zu ermöglichen.
  • Die Komplement-Syntax der Zeichenklasse [^...] erstellt eine Komplement-Klasse anstelle der Negation des Match-Ergebnisses, wodurch einige verwirrende Verhaltensweisen bei der Groß-/Kleinschreibung-agnostischen Übereinstimmung vermieden werden. Weitere Informationen finden Sie unter Komplementklassen und groß-/kleinschreibungsagnostisches Matching.

Einige im u-Modus gültige Regexe werden im v-Modus ungültig. Insbesondere ist die Zeichenklassen-Syntax unterschiedlich, und einige Zeichen können nicht mehr wörtlich erscheinen. Weitere Informationen finden Sie unter Zeichenklassen im v-Modus.

Hinweis: Der v-Modus interpretiert Grapheme-Cluster nicht als einzelne Zeichen; sie bleiben weiterhin mehrere Codepunkte. Zum Beispiel kann /[🇺🇳]/v weiterhin "🇺" matchen.

Der Set-Accessor von unicodeSets ist undefined. Sie können diese Eigenschaft nicht direkt ändern.

Beispiele

Verwendung der unicodeSets-Eigenschaft

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

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

Spezifikationen

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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch