Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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