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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
unicode

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch