SyntaxError: invalid regexp group
Ngoại lệ JavaScript "invalid regexp group" xảy ra khi chuỗi (? không bắt đầu một cú pháp nhóm hợp lệ. Các cú pháp nhóm được nhận ra bắt đầu bằng (? bao gồm:
(?:cho nhóm không bắt giữ(?=cho nhìn trước dương(?!cho nhìn trước âm(?<=cho nhìn sau dương(?<!cho nhìn sau âm(?<cho nhóm bắt giữ được đặt tên(?-i:,(?i:,(?m:,(?ims-:, v.v. cho bộ điều chỉnh
(? theo sau bởi bất kỳ ký tự nào khác sẽ gây ra lỗi này.
Thông báo
SyntaxError: Invalid regular expression: /(?1)/: Invalid group (V8-based) SyntaxError: invalid regexp group (Firefox) SyntaxError: Invalid regular expression: unrecognized character after (? (Safari)
Loại lỗi
SyntaxError
Điều gì đã xảy ra?
? không phải là nguyên tử, vì vậy không có ý nghĩa gì khi xuất hiện ở đầu của một nhóm bắt giữ (? là bộ định lượng và nên đặt sau một nguyên tử). Có thể bạn muốn khớp ký tự ? theo nghĩa đen, trong trường hợp đó bạn nên thoát nó bằng dấu gạch chéo ngược (\?). Có thể bạn nhớ nhầm cú pháp regex và bạn muốn sử dụng một trong các cú pháp nhóm được nhận ra ở trên. Có thể bạn đang sử dụng một tính năng không được hỗ trợ bởi engine JavaScript hiện tại.
Ví dụ
>Các trường hợp không hợp lệ
js
/Hello(?|!)/;
// Đây là cú pháp Perl
/(?[\p{Thai}&\p{Digit}])/;
Các trường hợp hợp lệ
js
/Hello(\?|!)/;
// Đây là cú pháp JavaScript cho các phép toán tập hợp ký tự
/[\p{Thai}&&\p{Digit}]/v;