PHP REGEX Bài 6 : Một số ví dụ về RegEx

0
174

1. Ví dụ Kiểm tra email hợp lệ

Để kiểm tra một email hợp lệ thì chúng ta phải xác định được các điều kiện, thì một email hợp lệ sẽ thường có một số điều kiện sau đây.

  • Địa chỉ email bắt đầu là một ký tự
  • Địa chỉ email phải là tập hợp các ký tự từ a-z,0-9 và có thể chứa một số kí tự đặc biệt như _ , .
  • Độ dài của email tối thiểu là 5 kí tự tối đa là 30 kí tự
  • Tên miền email có thể là tên miền cấp 1 hoặc tên miền cấp 2

Bây giờ chúng ta sẽ tiến hành tạo pattern Regex từ các điều kiện trên

2. Tạo pattern so sánh

Đầu tiên chúng ta sẽ kiểm tra xem địa chỉ email đã bắt đầu bằng ký tự chúng ta sẽ sử dụng cú pháp

Tiếp theo chúng ta kiểm tra địa chỉ email phải là tập hợp các kí tự từ a-z, A-Z, 0-9, _ , .

Địa chỉ email phải có tối thiểu 5, kí tự và tối đa là 30 chúng ta thêm vào kí hiệu {4,30} .

Địa chỉ email sẽ được phân cách với tên miền bằng kí tự @ vì thế chúng ta sẽ thêm kí tự @ vào

Vậy là chúng ta đã so sánh xong địa chỉ email, bây giờ chúng ta sẽ tiến hành so sánh tên miền, tên miền sẽ được bắt đầu bằng kí tự hoặc số và nó có độ dài từ 2 đến n. Chuỗi Regex sẽ trở thành

Tiếp theo là đuôi tên miền sẽ được phân cách bằng dấu . Và nó chứa kí tự hoặc số và nó có độ dài từ 2 – 4

Với đoạn mã trên chúng ta chỉ so sánh được tên miền cấp 1 bây giờ giả dụ như email có thêm tên miền cấp 2 thì thế nào. Trong Regex hỗ hợ cho chúng ta cú pháp tìm kiếm theo nhóm vậy thì bây giờ chúng ta chỉ cần đưa đoạn RegEx  \.[a-z0-9]{1,4} vào trong () và thêm giới hạn so sánh . Chuỗi Regex sẽ trở thành

Bây giờ ví dụ như tôi có một chuỗi như sau email123@gmail.com 123 nếu tôi tiến hành so sánh chuỗi trên với chuỗi Regex thì vẫn có kết quả trả về là đúng, nhưng mà theo định dạng email lại là sai. Vậy để so sánh đúng với trường hợp trên thì chúng ta chỉ cần thêm vào chuỗi RegEx kí tự $ để so sánh kết thúc chuỗi

Vậy là xong chúng ta đã tạo xong pattern

Xem thêm video học lập trình web miễn phí tại đây

3. Chạy kiểm tra

Kết quả:

Các bài học liên quan:

[Total: 0    Average: 0/5]

LEAVE A REPLY

Please enter your comment!
Please enter your name here