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
Beschreibung
RegExp.prototype.unicode
hat den Wert true
, wenn das u
-Flag verwendet wurde; andernfalls false
. Das u
-Flag aktiviert verschiedene Funktionen im Zusammenhang mit Unicode. Mit dem "u"-Flag:
- Jedes Unicode-Codepunkt-Escape (
\u{xxxx}
,\p{UnicodePropertyValue}
) wird als solches interpretiert, anstatt als Identitäts-Escape. Zum Beispiel/\u{61}/u
erfasst"a"
, aber/\u{61}/
(ohneu
-Flag) erfasst"u".repeat(61)
, wobei das\u
einem einzelnenu
entspricht. - Surrogatpaare werden als ganze Zeichen interpretiert, anstatt als zwei separate Zeichen. Zum Beispiel würde
/[😄]/u
nur"😄"
erfassen, aber nicht"\ud83d"
. - Wenn
lastIndex
automatisch weitergeschaltet wird (wie beim Aufruf vonexec()
), werden Unicode-Reguläre Ausdrücke nach Unicode-Codepunkten anstelle von UTF-16-Codeeinheiten weitergeschaltet.
Es gibt weitere Ä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 die Webkompatibilität beibehalten, und Sie sollten sich nicht darauf verlassen.
Der Set-Accessor von unicode
ist undefined
. Sie können diese Eigenschaft nicht direkt ändern.
Unicode-basierter Modus
Wenn wir uns auf den Unicode-basierten Modus beziehen, meinen wir, dass der reguläre Ausdruck entweder das u
- oder das v
Flag hat, in welchem Fall der reguläre Ausdruck Unicode-bezogene Features aktiviert (wie z.B. Unicode-Zeichenklassen-Escape) und viel strengere Syntaxregeln hat. Da u
und v
denselben regulären Ausdruck auf inkompatible Weisen interpretieren, führt die Verwendung beider Flags zu einem SyntaxError
.
Ebenso ist ein regulärer Ausdruck Unicode-unbewusst, wenn er weder das u
- noch das v
-Flag hat. In diesem Fall wird der reguläre Ausdruck als eine Sequenz von UTF-16-Codeeinheiten interpretiert, und es gibt viele veraltete Syntaxen, die nicht zu Syntaxfehlern werden.
Beispiele
Die unicode-Eigenschaft verwenden
const regex = /\u{61}/u;
console.log(regex.unicode); // true
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-get-regexp.prototype.unicode |
Browser-Kompatibilität
BCD tables only load in the browser