Khi cần kiểm tra email hợp lệ tức kiểm tra xem một chuỗi có phải đúng định dạng email không, bạn có thể dùng biểu thức chính quy RegEx để kiểm tra. Trong PHP có nhiều hàm có thể dùng biểu thức chính quy để kiểm tra dữ liệu, như Hàm preg_match Trong ví dụ này ta sử dụng preg_match để kiểm tra một chuỗi có định dạng là địa chỉ email hay không. Xây dựng một hàm có tên là emailValid như sau: <?php // trả về true nếu đúng định dạng email function emailValid($email) { return (bool)preg_match ("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+\.[A-Za-z]{2,6}$/", $email); } ?> Hoặc code như sau: <?php // trả về true nếu đúng định dạng email function emailValid($email) { $regex = "/([a-z0-9_]+|[a-z0-9_]+\.[a-z0-9_]+)@(([a-z0-9]|[a-z0-9]+\.[a-z0-9]+)+\.([a-z]{2,4}))/i"; if(!preg_match($regex, $email)) { return true; } else { return false; } } ?> Trích xuất chuỗi con khớp đầu tiên theo một biểu thức chính quy. Lưu ý: Hàm REGEXEXTRACT sẽ trả về "241" trong ví dụ này vì hàm này trả về trường hợp khớp đầu tiên.
Nhóm thu thậpHàm có thể trả về nhiều kết quả với nhóm thu thập. Nhóm thu thập là một phần của mẫu có thể được đặt trong dấu ngoặc đơn. Nếu không có nhóm thu thập nào, hàm sẽ trả về toàn bộ kết quả trùng khớp. Ví dụ mẫu
Lưu ý: Ví dụ trên sẽ trả về 2 cột dữ liệu, “trích xuất” ở cột đầu tiên và “giá trị” ở cột thứ hai. Ghi chú
Xem thêm
Ví dụThông tin này có hữu ích không? Chúng tôi có thể cải thiện trang này bằng cách nào? Regular Expression là gì? Regular Expression hay còn gọi là biểu thức chính quy được dùng để xử lý chuỗi nâng cao thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và bạn phải tuân theo nguyên tắc đó thì biểu thức của bạn mới hoạt động được. Ngoài cái tên gọi Regular Expression ra thì nó còn có thể viết tắt thành RegEx. Nguyên tắc hoạt động của biểu thức RegEx là so khớp dựa vào khuôn mẫu, khuôn mẫu được xây dựng từ các quy tắc căn bản của biểu thức RegEx. Và để các bạn nắm rõ regular expression là gì thì tôi sẽ giới thiệu một hàm xử lý Regular Expression trong php đó là hàm preg_match, sau đó đưa ra một vài ví dụ nhỏ để các bạn thực hành trước khi tìm hiểu các phần nâng cao hơn. Xác thực địa chỉ email với Regular ExpressionXác thực email là điều bắt buộc đối với các ứng dụng cho phép người dùng đăng ký tài khoản qua email. Nếu sử dụng các kỹ thuật thao tác chuỗi thông thường thì việc xác thực email sẽ rất khó khăn vì chúng ta thường cần đếm số lượng ký tự trong chuỗi, kiểm tra đầy đủ 3 thành phần chính của email. Nếu bạn đang tìm kiếm một cách tiếp cận phức tạp và đầy đủ nhất thì bài viết này không dành cho bạn. Tôi khuyên bạn nên xem qua General Email Regex (RFC 5322 Official Standard) được cung cấp tại emailregex.com. Nếu bạn muốn một cách tiếp cận đơn giản để sử dụng với các biểu mẫu web thì dưới đây là giải pháp. Ta có chuổi biểu thức chính quy sau đây sẽ giúp bạn xác thực email ở hầu hết các trường hợp. [^@]{2,64}@[^.]{2,253}\.[0-9a-z-.]{2,63} Địa chỉ Email có đặc điểm sau:
Bạn có thể xem demo và test Regular Expression hoạt động tại regex101 này XÁC THỰC ĐỊA CHỈ EMAIL VỚI BIỂU THỨC CHÍNH QUY (REGULAR EXPRESSION) Hãy kiểm tra xem liệu biểu thức trên có phù hợp với bạn hay không?! Ngoài ra có 1 rules mình thấy nó xác thực chính xác hơn bạn có thể xem đoạn code sau: /(([^<>()\[\]\\.,;:\s+@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/mg Bạn có thể test với regex101 tại đây Chúc bạn thành công. |