SyntaxError: invalid identity escape in regular expression

Ngoại lệ JavaScript "invalid identity escape in regular expression" xảy ra khi một mẫu biểu thức chính quy nhận biết Unicode chứa một chuỗi thoát không đại diện cho một chuỗi thoát được nhận ra.

Thông báo

SyntaxError: Invalid regular expression: /\q/u: Invalid escape (V8-based)
SyntaxError: invalid identity escape in regular expression (Firefox)
SyntaxError: Invalid regular expression: invalid escaped character for Unicode pattern (Safari)

Loại lỗi

SyntaxError

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

Trong chế độ không nhận biết Unicode, \ có thể được sử dụng để thoát bất kỳ ký tự nào, kể cả những ký tự không có nghĩa được định nghĩa. Trong những trường hợp này, ký tự được thoát đại diện cho chính nó. Ví dụ, \q sẽ khớp với ký tự q. Điều này hạn chế nghiêm trọng khả năng thêm các chuỗi thoát mới trong tương lai, vì vậy trong chế độ nhận biết Unicode, chỉ các chuỗi thoát được nhận ra mới được phép. Đừng thêm \ một cách thừa thãi.

Lỗi này cũng được ném ra khi chuỗi thoát ký tự \x không được theo sau bởi hai chữ số thập lục phân.

Để biết danh sách đầy đủ các chuỗi thoát có sẵn, hãy xem tài liệu tham khảo biểu thức chính quy. Để biết bảng về các ký tự nào có thể xuất hiện theo nghĩa đen được thoát hoặc không được thoát trong từng ngữ cảnh, hãy xem ký tự đặc biệt.

Ví dụ

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

js
/[\f\v\n\t\ ]/u;

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

js
// Không cần thoát khoảng trắng
/[\f\v\n\t ]/u;

Xem thêm