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

View in English Always switch to English

Zeichencodes: \n, \u{...}

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Ein Zeichencode repräsentiert ein Zeichen, das möglicherweise nicht bequem in seiner literalen Form dargestellt werden kann.

Syntax

regex
\f, \n, \r, \t, \v
\cA, \cB, …, \cz
\0
\^, \$, \\, \., \*, \+, \?, \(, \), \[, \], \{, \}, \|, \/

\xHH
\uHHHH
\u{H…H}

Hinweis: , ist nicht Teil der Syntax.

Parameter

H…H

Eine hexadezimale Zahl, die den Unicode-Codepunkt des Zeichens darstellt. Die \xHH-Form muss zwei hexadezimale Ziffern haben; die \uHHHH-Form muss vier haben; die \u{H…H}-Form kann 1 bis 6 hexadezimale Ziffern haben.

Beschreibung

Die folgenden Zeichencodes werden in regulären Ausdrücken erkannt:

\f, \n, \r, \t, \v

Genauso wie in Zeichenfolgenliteralen, außer \b, das in Regexen eine Wortgrenze darstellt, es sei denn, es befindet sich in einer Zeichenklasse.

\c gefolgt von einem Buchstaben von A bis Z oder a bis z

Repräsentiert das Steuerzeichen mit einem Wert, der gleich dem Buchstabenwert modulo 32 ist. Beispielsweise repräsentiert \cJ einen Zeilenumbruch (\n), da der Codepunkt von J 74 ist und 74 modulo 32 gleich 10 ist, was dem Codepunkt des Zeilenumbruchs entspricht. Da sich ein Großbuchstabe und seine Kleinschreibung um 32 unterscheiden, sind \cJ und \cj äquivalent. Steuerzeichen von 1 bis 26 können auf diese Weise dargestellt werden.

\0

Repräsentiert das U+0000 NUL-Zeichen. Darf nicht von einer Ziffer gefolgt werden (was es zu einer veralteten oktalen Escape Sequenz macht).

\^, \$, \\, \. \*, \+, \?, \(, \), \[, \], \{, \}, \|, \/

Repräsentiert das Zeichen selbst. Beispielsweise repräsentiert \\ einen Rückwärtsstrich, und \( stellt eine linke runde Klammer dar. Dies sind Syntaxzeichen in Regexen (/ ist der Begrenzer eines Regex-Literals), daher erfordern sie eine Escape-Sequenz, es sei denn, sie befinden sich in einer Zeichenklasse.

\xHH

Repräsentiert das Zeichen mit dem angegebenen hexadezimalen Unicode-Codepunkt. Die hexadezimale Zahl muss genau zwei Ziffern lang sein.

\uHHHH

Repräsentiert das Zeichen mit dem angegebenen hexadezimalen Unicode-Codepunkt. Die hexadezimale Zahl muss genau vier Ziffern lang sein. Zwei solche Escape-Sequenzen können verwendet werden, um ein Surrogatpaar im Unicode-bewussten Modus darzustellen. (Im Unicode-unbewussten Modus sind sie immer zwei separate Zeichen.)

\u{H…H}

(Nur im Unicode-bewussten Modus) Repräsentiert das Zeichen mit dem angegebenen hexadezimalen Unicode-Codepunkt. Die hexadezimale Zahl kann zwischen 1 und 6 Ziffern lang sein.

Im Unicode-unbewussten Modus werden Escape-Sequenzen, die nicht zu den oben genannten gehören, zu Identitäts-Escape-Sequenzen: Sie repräsentieren das Zeichen, das dem Rückwärtsstrich folgt. Zum Beispiel, \a repräsentiert das Zeichen a. Dieses Verhalten schränkt die Möglichkeit ein, neue Escape-Sequenzen einzuführen, ohne Kompatibilitätsprobleme zu verursachen, und ist daher im Unicode-bewussten Modus verboten.

Im Unicode-unbewussten Modus können ], { und } literally erscheinen, wenn es nicht möglich ist, sie als Ende einer Zeichenklasse oder Quantifizierungsbegrenzung zu parsen. Dies ist eine veraltete Syntax für Web-Kompatibilität, und Sie sollten sich nicht darauf verlassen.

Im Unicode-unbewussten Modus werden Escape-Sequenzen innerhalb von Zeichenklassen der Form \cX, wobei X eine Zahl oder _ ist, auf die gleiche Weise dekodiert wie die mit ASCII-Buchstaben: \c0 ist dasselbe wie \cP, wenn man modulo 32 annimmt. Darüber hinaus wird, wenn die Form \cX irgendwo auftritt, wo X nicht eines der erkannten Zeichen ist, der Rückwärtsstrich als literales Zeichen behandelt. Diese Syntaxen sind ebenfalls veraltet.

js
/[\c0]/.test("\x10"); // true
/[\c_]/.test("\x1f"); // true
/[\c*]/.test("\\"); // true
/\c/.test("\\c"); // true
/\c0/.test("\\c0"); // true (the \c0 syntax is only supported in character classes)

Beispiele

Verwendung von Zeichencodes

Zeichencodes sind nützlich, wenn Sie ein Zeichen ansprechen möchten, das nicht leicht in seiner literalen Form dargestellt werden kann. Beispielsweise können Sie in einem Regex-Literal keinen Zeilenumbruch direkt verwenden, deshalb müssen Sie einen Zeichencode verwenden:

js
const pattern = /a\nb/;
const string = `a
b`;
console.log(pattern.test(string)); // true

Spezifikationen

Spezifikation
ECMAScript® 2026 Language Specification
# prod-CharacterEscape

Browser-Kompatibilität

Siehe auch