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}/ (ohne u-Flag) passt auf "u".repeat(61), wobei das \u einem einzelnen u 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 von exec()), 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

js
const regex = /\u{61}/u;

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

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-get-regexp.prototype.unicode

Browser-Kompatibilität

Siehe auch