Regular expression kiểm tra gmail

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.

Ví dụ mẫu

=REGEXEXTRACT("Số_yêu_thích_của_tôi_là_241_nhưng_số_yêu_thích_của_bạn_tôi_là_17"; "\d+")

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.

Cú pháp

REGEXEXTRACT(văn_bản; biểu_thức_chính_quy)

  • văn_bản – Văn bản nhập vào.

  • biểu_thức_chính_quy – Phần đầu tiên văn_bản khớp với biểu thức này sẽ được trả về.

Nhóm thu thập

Hà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

=REGEXEXTRACT("Bạn_cũng_có_thể_trích_xuất_nhiều_giá_trị_từ_văn_bản."; "Bạn_cũng_có_thể_(\w+)_nhiều_(\w+)_từ_văn_bản.")

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ú

  • Các sản phẩm của Google sử dụng RE2 cho các biểu thức chính quy. Google Trang tính hỗ trợ RE2 ngoại trừ lớp ký tự Unicode trùng khớp. Tìm hiểu thêm về cách sử dụng biểu thức RE2.
  • Hàm này chỉ sử dụng dữ liệu đầu vào định dạng văn bản (không dùng cho định dạng số) và trả về kết quả đầu ra là định dạng văn bản. Nếu muốn có kết quả đầu ra là dạng số, hãy thử sử dụng hàm VALUE cùng với hàm này. Nếu bạn dùng các số làm dữ liệu đầu vào, hãy chuyển đổi các số đó thành định dạng văn bản bằng cách sử dụng hàm TEXT.

Xem thêm

REGEXMATCH: Xem một đoạn văn bản có khớp với một biểu thức chính quy hay không.

REGEXREPLACE: Thay thế một phần của một chuỗi văn bản bằng một chuỗi văn bản khác bằng cách sử dụng các biểu thức chính quy.

SUBSTITUTE: Thay thế văn bản đã tồn tại bằng một văn bản mới trong chuỗi.

REPLACE: Thay thế một phần của một chuỗi văn bản bằng một chuỗi văn bản khác.

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 Expression

Xá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:

  • Giữa 2 và 64 ký tự không được có @
  • Giữa 2 và 253 ký tự được có dấu .
  • Từ 2 đến 63 cho phép là chữ cái thường, số, dấu gạch ngang hoặc ký tự dấu chấm

Bạn có thể xem demo và test Regular Expression hoạt động tại regex101 này

Regular expression kiểm tra gmail

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.

Regular expression kiểm tra gmail