RegExp.prototype.unicodeSets

Baseline 2023
Newly available

Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die unicodeSets Zugriffs-Eigenschaft von RegExp-Instanzen gibt zurück, ob das v-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.

Probieren Sie es aus

const regex1 = /[\p{Lowercase}&&\p{Script=Greek}]/;
const regex2 = /[\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 mehr Unicode-bezogene Funktionen aktiviert. ("v" ist der nächste Buchstabe nach "u" im Alphabet.) Da u und v den gleichen Regex auf inkompatible Weise interpretieren, führt die Verwendung beider Flags zu einem SyntaxError. Mit dem v-Flag erhalten Sie alle in der u-Flag-Beschreibung genannten Funktionen sowie:

  • Die \p Escape-Sequenz kann zusätzlich verwendet werden, um Eigenschaften von Zeichenfolgen zu matchen, anstatt nur Zeichen.
  • Die Zeichenklassen-Syntax wird erweitert, um Schnitt-, Vereinigungs- und Subtraktionssyntaxe sowie das Matchen mehrerer Unicode-Zeichen zu ermöglichen.
  • Die Komplement-Syntax der Zeichenklasse [^...] konstruiert eine Komplement-Klasse, anstatt das Matchergebnis zu negieren, was einige verwirrende Verhaltensweisen bei der Groß-/Kleinschreibung vermeidet. Weitere Informationen finden Sie unter Komplement-Klassen und Groß-/Kleinschreibungs-Matching.

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

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

Der Set-Zugriff 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® 2026 Language Specification
# sec-get-regexp.prototype.unicodesets

Browser-Kompatibilität

Siehe auch