Tất cả các biểu hiện thường xuyên cố gắng để xác nhận các định dạng email dựa trên Latin ký tự được chia. Họ không hỗ trợ internationalized domain names có sẵn từ tháng 5 năm 2010. Có, bạn đọc nó đúng, ký tự không phải là tiếng Latin kể từ đó được phép trong tên miền và do đó cũng có địa chỉ email.
Do đó, rất nhiều ký tự có thể xác thực. Tốt nhất là giữ nó đơn giản. Regex sau chỉ xác thực định dạng email dựa trên sự xuất hiện của các ký tự @
và .
.
<f:validateRegex pattern="([^[email protected]]+)(\.[^[email protected]]+)*@([^[email protected]]+\.)+([^[email protected]]+)" />
Một lần nữa, điều này chỉ xác thực định dạng email chung, cho dù email có hợp pháp hay không. Người dùng vẫn có thể nhập [email protected]
làm địa chỉ và vượt qua xác thực. Không ai regex có thể bao gồm điều đó. Nếu tính hợp lệ của địa chỉ email quan trọng, hãy kết hợp nó với một hệ thống xác thực. Chỉ cần gửi một số loại email kích hoạt có liên kết gọi lại đến địa chỉ email được đề cập và cho phép người dùng đăng nhập bằng địa chỉ email.
cách để cập nhật regex ở trên để chỉ tạo các miền hợp lệ: .com, .net, .org, .edu? cũng có bất kỳ ý tưởng nào làm cho việc xác thực này tập trung bị mất không? –
Đây là cách thực hiện: ' ' –
Daniel
Không hoạt động đối với email hoàn toàn hợp lệ chứa dấu cộng, như [email protected] – Igor