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 July 2015.

Die unicode Zugriffseigenschaft von RegExp-Instanzen gibt zurück, ob das u-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.

Probieren Sie es aus

const regex1 = new RegExp("\\u{61}");
const regex2 = new RegExp("\\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 unicodebezogene Funktionen. Mit dem u-Flag:

  • Beliebige Unicode-Codepunkt-Escapes (\u{xxxx}, \p{UnicodePropertyValue}) werden als solche interpretiert, anstatt als Identitäts-Escapes. Zum Beispiel: /\u{61}/u passt zu "a", aber /\u{61}/ (ohne u-Flag) passt zu "u".repeat(61), wobei \u gleichbedeutend mit einem einzelnen u ist.
  • Surrogatpaare werden als ganze Zeichen und nicht als zwei separate Zeichen interpretiert. Zum Beispiel würde /[😄]/u nur zu "😄" passen, aber nicht zu "\ud83d".
  • Wenn lastIndex automatisch vorgerückt wird (z. B. beim Aufruf von exec()), rücken unicodebezogene reguläre Ausdrücke durch Unicode-Codepunkte statt durch UTF-16-Codeeinheiten vor.

Es gibt weitere Änderungen am Parserverhalten, die potenzielle Syntaxfehler verhindern (analog zum strict mode für die Regex-Syntax). Diese Syntaxen sind alle veraltet und werden nur aus Gründen der Web-Kompatibilität beibehalten, und Sie sollten sich nicht auf sie verlassen.

Der Setter von unicode ist undefined. Sie können diese Eigenschaft nicht direkt ändern.

Unicode-awareness-Modus

Wenn wir uns auf den Unicode-awareness-Modus beziehen, meinen wir, dass der reguläre Ausdruck entweder das u- oder das v-Flag enthält. In diesem Fall aktiviert der reguläre Ausdruck unicodebezogene Funktionen (wie Unicode-Zeichenklassen-Escape) und hat viel strengere Syntaxregeln. Da u und v denselben regulären Ausdruck auf inkompatible Weise interpretieren, führt die Verwendung beider Flags zu einem SyntaxError.

Ebenso ist ein regulärer Ausdruck Unicode-unaware, wenn er weder das u- noch das v-Flag enthält. In diesem Fall wird der reguläre Ausdruck als Folge von UTF-16-Codeeinheiten interpretiert, und es gibt viele Legacy-Syntaxen, die keine Syntaxfehler darstellen.

Beispiele

Verwendung der unicode-Eigenschaft

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

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

Spezifikationen

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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch