Sử dụng Regular Expression - kiểm tra tính hợp lệ của e-mail với PHP  
 

(Post 19/06/2006) Kiểm tra tính hợp lệ của các biểu mẫu là yếu tố rất quan trọng trong việc lập trình web. Trong bài này, tôi muốn giới thiệu đến các bạn cách dùng Regular Expression (RE) trong PHP để kiểm tra người dùng có nhập một địa chỉ e-mail hợp lệ hay không.

Trong PHP, tập hàm RE được chia làm 2 loại:

  1. Hàm ereg: Cú pháp biểu thức chứa qui tắc chuẩn của PHP.
  2. Các hàm preg: Cú pháp biểu thức chứa qui tắc tương thích với perl.

Thực hành:

Như các bạn đã biết, địa chỉ e-mail có dạng: username@domain.extension, ví dụ hameo87@gmail.com. Với một địa chỉ e-mail, thông thường có một phần mở rộng, ta sẽ viết:

eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-] +\.[a-zA-Z.]{2,5}$', $email)

Tách ví dụ thành 3 phần nhỏ để dễ hiểu hơn:

  1. ^[a-zA-Z0-9._-]+@: Phần này có nhiệm vụ kiểm tra phần username của e-mail. Dấu mũ “^” ở đầu báo hiệu nơi bắt đầu chuỗi, nếu thiếu nó, người dùng có thể gõ bất kỳ thứ gì trước địa chỉ e-mail. Những ký tự trong dấu ngoặc vuông là những ký tự cho phép. Ta chấp nhận các chữ cái thường và hoa từ A đến Z, các chữ số từ 0 đến 9 và dấu chấm “.”, dấu gạch dưới “_”, dấu gạch trên “-”. Dấu cộng “+” ký tự “@”, sau ngoặc vuông đòi hỏi phải có một hoặc nhiều hơn một ký tự thuộc phạm vi cho phép trong dấu ngoặc vuông, vì vậy người dùng bắt buộc phải nhập phần username trong địa chỉ e-mail. Việc giới hạn số ký tự, ta sẽ xét ở phần sau. Cuối cùng, chữ @ cũng là chữ @ bình thường trong địa chỉ e-mail.
  2. [a-zA-Z0-9._-]+\.: Phần này cũng tương tự như kiểm tra username, và dấu cộng sau ngoặc buộc người dùng phải nhập tên miền của địa chỉ e-mail, ở cuối là một dấu “\” trước dấu “.” báo cho biểu thức rằng có một dấu chấm được yêu cầu tại vị trí này. Ý nghĩa của dấu “\” để thông báo đây là ký tự bình thường để tránh hiểu nhầm với ký tự “.” đứng một mình, sẽ được hiểu như một ký tự điều khiển cho biết tại vị trí đó có thể nhập ký tự bất kỳ.
  3. [a-zA-Z]{2,4}$: Phần này để kiểm tra phần mở rộng là phần cuối của biểu thức. Chúng ta chỉ cho phép các ký tự hoa, thường từ “A” đến “Z” thay vì dùng dấu cộng, ta dùng ngay {2,4} sau ngoặc vuông để qui định số ký tự tối thiểu và tối đa cho tên miền là 2 và 4 ( VD: vn, net, org ...). Cuối cùng kýá tự $ có nghĩa là kết thúc chuỗi, người dùng không thể nhập thêm gì phía sau tên miền.

Như vậy là bạn đã biết cách kiểm tra biểu thức e-mail rồi nhé, với loại e-mail có tên miền cấp II (VD: abcd@pmail.vnn.vn ), bạn cũng làm tương tự.

Một số số ký hiệu khác trong cú pháp cơ bản:

  • ?: Yêu cầu 0 hoặc 1 ký tự đứng trước.
  • *: Yêu cầu 0 hoặc nhiều ký tự đứng trước.
  • +: Yêu cầu 1 hoặc nhiều ký tự đứng trước.
  • {a}: Yêu cầu a kýá tự đứng trước.
  • {a,b}: Yêu cầu từ a đến b ký tự đứng trước.
  • {a,}: Yêu cầu lớn hơn hoặc bằng a ký tự đứng trước.
  • . : Bất kỳ ký tự nào.
  • (a|b): a hoặc b.
  • \s: Xóa sạch khoảng trắng.

Nguyễn Thái Hà
(theo Echip)


 
 

 
     
 
Công nghệ khác:


Công ty phần mềm thời nay: Nhiều tiền chưa hẳn đã hayLỗi driver làm giảm thời lượng dùng pin laptop
Để hiểu thêm về phần mềm, mã nguồn mởMobile Web Application Secret
Lịch sử 50 năm phát triển ổ cứng qua ảnhGoogle Desktop 4: now with Gadgets
  Xem tiếp    
 
Lịch khai giảng của hệ thống
 
Ngày
Giờ
T.Tâm
TP Hồ Chí Minh
Hà Nội
 
   
New ADSE - Nhấn vào để xem chi tiết
Mừng Sinh Nhật Lần Thứ 20 FPT-APTECH
Nhấn vào để xem chi tiết
Bảng Vàng Thành Tích Sinh Viên FPT APTECH - Nhấn vào để xem chi tiết
Cập nhật công nghệ miễn phí cho tất cả cựu sinh viên APTECH toàn quốc
Tiết Thực Vì Cộng Đồng
Hội Thảo CNTT
Những khoảnh khắc không phai của Thầy Trò FPT-APTECH Ngày 20-11