RegExp.prototype.unicodeSets
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2023 browserübergreifend verfügbar.
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 = /[\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" zum u-Flag, das mehr Unicode-bezogene Funktionen aktiviert. ("v" ist der nächste Buchstabe nach "u" im Alphabet.) Da u und v dasselbe Regex auf inkompatible Weise interpretieren, führt die Verwendung beider Flags zu einem SyntaxError. Mit dem v-Flag erhalten Sie alle Funktionen, die in der Beschreibung des u-Flags erwähnt werden, plus:
- Die
\pEscape-Sequenz kann zusätzlich verwendet werden, um Eigenschaften von Zeichenfolgen zu matchen, anstatt nur Zeichen. - Die [Zeichenklassen]-Syntax(/de/docs/Web/JavaScript/Reference/Regular_expressions/Character_class) wird dahingehend erweitert, dass sie Schnittmengen-, Vereinigungs- und Subtraktionssyntaxe sowie das Matchen mehrerer Unicode-Zeichen ermöglicht.
- Die Komplement-Syntax von Zeichenklassen
[^...]erstellt eine Komplementklasse anstatt das Matchergebnis zu negieren, wodurch einige verwirrende Verhaltensweisen bei der Groß-/Kleinschreibung vermieden werden. Weitere Informationen finden Sie unter Komplementklassen und Groß-/Kleinschreibungsabgleich.
Einige gültige u-Modus-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 v-Modus Zeichenklasse.
Hinweis:
Der v-Modus interpretiert keine Graphem-Cluster als einzelne Zeichen; sie sind nach wie vor mehrere Codepunkte. Zum Beispiel kann /[🇺🇳]/v immer noch "🇺" matchen.
Der Set-Zutritt von unicodeSets ist undefined. Sie können diese Eigenschaft nicht direkt ändern.
Beispiele
>Verwendung der unicodeSets-Eigenschaft
const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;
console.log(regex.unicodeSets); // true
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-regexp.prototype.unicodesets> |
Browser-Kompatibilität
Siehe auch
RegExp.prototype.lastIndexRegExp.prototype.dotAllRegExp.prototype.globalRegExp.prototype.hasIndicesRegExp.prototype.ignoreCaseRegExp.prototype.multilineRegExp.prototype.sourceRegExp.prototype.stickyRegExp.prototype.unicode- RegExp v Flag mit Mengenotation und Eigenschaften von Zeichenketten auf v8.dev (2022)