SyntaxError: invalid unicode escape in regular expression

Ngoại lệ JavaScript "invalid unicode escape in regular expression" xảy ra khi các chuỗi thoát ký tự \c\u không được theo sau bởi các ký tự hợp lệ.

Thông báo

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)

Loại lỗi

SyntaxError

Điều gì đã xảy ra?

Trong chế độ nhận biết Unicode, chuỗi thoát \c phải được theo sau bởi một chữ cái từ A đến Z hoặc a đến z, và chuỗi thoát \u phải được theo sau bởi 4 chữ số thập lục phân hoặc 1 đến 6 chữ số thập lục phân được bao trong dấu ngoặc nhọn ({}). Hơn nữa, khi sử dụng chuỗi thoát \u{xxx}, các chữ số phải đại diện cho một điểm mã Unicode hợp lệ, nghĩa là giá trị của nó không được vượt quá 10FFFF.

Ví dụ

Các trường hợp không hợp lệ

js
/\u{123456}/u; // Điểm mã Unicode quá lớn
/\u65/u; // Không đủ chữ số
/\c1/u; // Không phải chữ cái

Các trường hợp hợp lệ

js
/\u0065/u; // Chữ thường "e"
/\u{1f600}/u; // Biểu tượng cảm xúc mặt cười
/\cA/u; // U+0001 (Start of Heading)

Xem thêm