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-Codepunkt-Escapes (\u{xxxx}, \p{UnicodePropertyValue}) werden als solche interpretiert statt als Identitäts-Escapes. Zum Beispiel /\u{61}/u entspricht "a", aber /\u{61}/ (ohne u-Flag) entspricht "u".repeat(61), wobei \u einem einzelnen u entspricht.
  • Surrogatpaare werden als ganze Zeichen statt als zwei separate Zeichen interpretiert. Zum Beispiel würde /[😄]/u nur "😄" entsprechen, aber nicht "\ud83d".
  • Wenn lastIndex automatisch weitergesetzt wird (wie beim Aufrufen von exec()), werden Unicode-RegExps nach Unicode-Codepunkten und nicht nach UTF-16-Codeeinheiten vorgerückt.

Es gibt andere Änderungen im Parsing-Verhalten, die mögliche Syntaxfehler verhindern (analog zu Strict Mode für Regex-Syntax). Diese Syntaxen sind alle veraltet und werden nur für Webkompatibilität beibehalten, 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 von Unicode-bewusstem Modus sprechen, meinen wir, dass der Regex entweder das u- oder das v-Flag hat, in welchem Fall der Regex Unicode-bezogene Funktionen aktiviert (wie Unicode-Zeichenklassen-Escape) und viel strengere Syntaxregeln hat. Da u und v denselben Regex auf inkompatible Weise interpretieren, führt die Verwendung beider Flags zu einem SyntaxError.

Ähnlich ist ein Regex Unicode-unabhängig, wenn er weder das u- noch das v-Flag hat. In diesem Fall wird der Regex als eine Folge von UTF-16-Codeeinheiten interpretiert, und es gibt viele alte Syntaxen, die keine Syntaxfehler werden.

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