SyntaxError: raw bracket is not allowed in regular expression with unicode flag
Ngoại lệ JavaScript "raw bracket is not allowed in regular expression with unicode flag" xảy ra khi một mẫu biểu thức chính quy nhận biết Unicode chứa dấu ngoặc thô ({, }, ]) không phải là một phần của bộ định lượng hoặc lớp ký tự.
Thông báo
SyntaxError: Invalid regular expression: /{/u: Lone quantifier brackets (V8-based)
SyntaxError: raw bracket is not allowed in regular expression with unicode flag (Firefox)
SyntaxError: Invalid regular expression: incomplete {} quantifier for Unicode pattern (Safari)
SyntaxError: Invalid regular expression: unmatched ] or } bracket for Unicode pattern (Safari)
Loại lỗi
SyntaxError
Điều gì đã xảy ra?
Trong chế độ không nhận biết Unicode, {, }, và ] không phải là một phần của bộ định lượng hoặc lớp ký tự được coi là ký tự đặc biệt. Điều này có thể ẩn lỗi trong code của bạn và do đó đã bị phản đối và không được phép trong chế độ nhận biết Unicode. Bạn nên kiểm tra xem bạn có cú pháp không hợp lệ hay bạn nên thoát các ký tự để khớp với chúng theo nghĩa đen.
Nếu { xuất hiện trong một ngữ cảnh chấp nhận bộ định lượng, nó được coi là phần bắt đầu của bộ định lượng. Nếu những gì theo sau nó không phải là bộ định lượng hợp lệ, một lỗi cú pháp khác, bộ định lượng chưa hoàn chỉnh, sẽ được ném ra.
Ví dụ
>Các trường hợp không hợp lệ
/{{MDN_Macro}}/u;
/\[sic]/u;
Các trường hợp hợp lệ
// Tất cả { và } cần được thoát
/\{\{MDN_Macro\}\}/u;
// ] cần được thoát
/\[sic\]/u;