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}/
(ohneu
-Flag) passt zu"u".repeat(61)
, wobei\u
gleichbedeutend mit einem einzelnenu
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 vonexec()
), 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
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