SyntaxError: invalid unicode escape in regular expression

The JavaScript exception "invalid unicode escape in regular expression" occurs when the \c and \u character escapes are not followed by valid characters.

Message

SyntaxError: Invalid regular expression: /\u{123456}/u: Invalid Unicode escape (V8-based)
SyntaxError: invalid unicode escape in regular expression (Firefox)
SyntaxError: Invalid regular expression: invalid Unicode code point \u{} escape (Safari)

Error type

What went wrong?

In Unicode-aware mode mode, the \c escape sequence must be followed by a letter from A to Z or a to z, and the \u escape sequence must either be followed by 4 hexadecimal digits, or 1 to 6 hexadecimal digits enclosed in curly braces ({}). Furthermore, when using the \u{xxx} escape sequence, the digits must represent a valid Unicode code point, which means its value cannot exceed 10FFFF.

Examples

Invalid cases

js
/\u{123456}/u; // Unicode code point is too large
/\u65/u; // Not enough digits
/\c1/u; // Not a letter

Valid cases

js
/\u0065/u; // Lowercase "e"
/\u{1F600}/u; // Grinning face emoji
/\cA/u; // U+0001 (Start of Heading)

See also