字元轉義:\n, \u{...}

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

字元轉義表示一個可能無法以其字面形式方便地表示的字元。

語法

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

\xHH
\uHHHH
\u{HHH}

注意: , 不屬於語法的一部分。

引數

HHH

一個十六進位制數,表示字元的 Unicode 碼點。\xHH 形式必須有兩位十六進位制數字;\uHHHH 形式必須有四位;\u{HHH} 形式可以有 1 到 6 位十六進位制數字。

描述

正則表示式中識別以下字元轉義

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

字串字面量中的相同,除了 \b,它在正則表示式中表示單詞邊界,除非在字元類中。

\c 後跟一個從 AZ 或從 az 的字母

表示一個控制字元,其值等於該字母的字元值模 32。例如,\cJ 表示換行符 (\n),因為 J 的碼點是 74,而 74 模 32 是 10,也就是換行符的碼點。因為大寫字母和小寫字母相差 32,所以 \cJ\cj 是等價的。你可以用這種形式表示 1 到 26 的控制字元。

\0

表示 U+0000 NUL 字元。不能後跟數字(否則它會成為遺留的八進位制轉義序列)。

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

表示字元本身。例如,\\ 表示反斜槓,\( 表示左括號。這些在正則表示式中是語法字元/ 是正則表示式字面量的分隔符),因此除非在字元類中,否則它們需要轉義。

\xHH

表示具有給定十六進位制 Unicode 碼點的字元。十六進位制數必須正好是兩位長。

\uHHHH

表示具有給定十六進位制 Unicode 碼點的字元。十六進位制數必須正好是四位長。在支援 Unicode 模式下,兩個這樣的轉義序列可以用來表示一個代理對。(在不支援 Unicode 模式下,它們始終是兩個獨立的字元。)

\u{HHH}

(僅限支援 Unicode 模式)表示具有給定十六進位制 Unicode 碼點的字元。十六進位制數可以是 1 到 6 位長。

不支援 Unicode 模式下,不是上述形式的轉義序列會變成標識轉義:它們表示反斜槓後面的字元。例如,\a 表示字元 a。這種行為限制了引入新轉義序列而不會導致向後相容性問題的能力,因此在支援 Unicode 模式下是禁止的。

在不支援 Unicode 模式下,]{} 可能會字面出現,如果它們不能被解析為字元類或量詞分隔符的結尾。這是一種用於 Web 相容性的廢棄語法,你不應依賴它。

在不支援 Unicode 模式下,字元類中形式為 \cX 的轉義序列(其中 X 是數字或 _)的解碼方式與ASCII 字母的解碼方式相同:\c0\cP 模 32 後相同。此外,如果在任何地方遇到形式為 \cXX 不是已識別字符的轉義序列,則反斜槓被視為字面字元。這些語法也已廢棄。

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)

示例

使用字元轉義

當你想要匹配一個不容易以其字面形式表示的字元時,字元轉義會很有用。例如,你不能在正則表示式字面量中字面地使用換行符,所以你必須使用字元轉義

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

規範

規範
ECMAScript® 2026 語言規範
# prod-CharacterEscape

瀏覽器相容性

另見