 |
|
KINH NGHIỆM LẬP
TRÌNH |
|
Sử dụng Regular Expression - kiểm tra tính hợp lệ
của e-mail với PHP |
|
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:
- Hàm ereg: Cú pháp biểu thức chứa qui tắc chuẩn của
PHP.
- 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: |
|
- ^[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. |
|
- [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ỳ. |
|
- [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à (Hà Nam) |
|
|
|
 |
|
 |