RegExp.prototype.unicode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
Die unicode
Accessor-Eigenschaft von RegExp
Instanzen gibt an, ob das u
-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.
Probieren Sie es aus
const regex1 = /\u{61}/;
const regex2 = /\u{61}/u;
console.log(regex1.unicode);
// Expected output: false
console.log(regex2.unicode);
// Expected output: true
Beschreibung
RegExp.prototype.unicode
hat den Wert true
, wenn das u
-Flag verwendet wurde; andernfalls false
. Das u
-Flag aktiviert verschiedene Unicode-bezogene Funktionen. Mit dem "u"-Flag:
- Alle Unicode Codepoint Escapes (
\u{xxxx}
,\p{UnicodePropertyValue}
) werden als solche und nicht als Identitäts-Escapes interpretiert. Zum Beispiel/\u{61}/u
passt auf"a"
, aber/\u{61}/
(ohneu
-Flag) passt auf"u".repeat(61)
, wobei das\u
einem einzelnenu
entspricht. - Surrogat-Paare werden als ganze Zeichen interpretiert, anstatt als zwei separate Zeichen. Zum Beispiel würde
/[😄]/u
nur auf"😄"
passen, aber nicht auf"\ud83d"
. - Wenn
lastIndex
automatisch erhöht wird (z.B. beim Aufruf vonexec()
), schreiten Unicode-Reguläre Ausdrücke nach Unicode-Codepunkten voran anstatt nach UTF-16 Code-Einheiten.
Es gibt weitere Änderungen im Parsing-Verhalten, die mögliche Syntaxfehler verhindern (die analog zum Strikten Modus für Regex-Syntax sind). Diese Syntaxen sind alle veraltet und nur aus Web-Kompatibilitätsgründen erhalten, und Sie sollten sich nicht auf sie verlassen.
Der Set-Accessor von unicode
ist undefined
. Sie können diese Eigenschaft nicht direkt ändern.
Unicode-bewusster Modus
Wenn wir vom Unicode-bewussten Modus sprechen, meinen wir, dass der Regex entweder das u
- oder das v
-Flag hat, in welchem Fall der Regex Unicode-bezogene Funktionen (wie Unicode-Zeichenklassen-Escape) aktiviert und wesentlich strengere Syntaxregeln hat. Da u
und v
denselben Regex auf inkompatible Weisen interpretieren, führt die Verwendung beider Flags zu einem SyntaxError
.
Ähnlich ist ein Regex Unicode-unbewusst, wenn er weder das u
- noch das v
-Flag hat. In diesem Fall wird der Regex als eine Sequenz von UTF-16 Code-Einheiten interpretiert, und es gibt viele veraltete Syntaxen, die nicht zu Syntaxfehlern führen.
Beispiele
Verwendung der unicode-Eigenschaft
const regex = /\u{61}/u;
console.log(regex.unicode); // true
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-get-regexp.prototype.unicode |