Tôi đang sử dụng đối sánh mẫu regex để xác thực biểu mẫu HTML5. Phiên bản mới nhất của Firefox cho tôi một lỗi. Tôi chỉ bắt đầu thấy điều này trong Firefox 46. Tôi không nghĩ rằng đây là một vấn đề trong các phiên bản Firefox trước đó.Lỗi Firefox: Không thể kiểm tra đầu vào vì mẫu không phải là regexp hợp lệ: thoát danh tính không hợp lệ trong biểu thức chính quy
Unable to check
<input pattern='[\@\%]'>
because the pattern is not a valid regexp: invalid identity escape in regular expression
gây ra bởi trường hợp thử nghiệm rất đơn giản này:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<form>
<input pattern="[\@\%]">
</form>
</html>
Tại sao thoát những nhân vật được coi là một lỗi? Tôi đã luôn luôn thoát khỏi mọi thứ trong các biểu thức thông thường của tôi mà không phải là một số hoặc một lá thư. Tôi chưa bao giờ có bất cứ điều gì phàn nàn về loại ký tự thoát này ngoại trừ phiên bản Firefox này.
Khi tôi học regex, tôi được thông báo rằng mọi thứ không phải là số hay chữ cái đều có ý nghĩa đặc biệt. Ngay cả khi nó không phải bây giờ, nó có thể trong một phiên bản tương lai, vì vậy nó là tốt hơn để thoát khỏi chúng. Điều này có đúng không?
Có danh sách các ký tự tôi không nên thoát cho Firefox không?
_sidenote_: - bạn không cần phải thoát khỏi những ký tự trong lớp nhân vật như họ không có bất kỳ ý nghĩa đặc biệt – rock321987