Nguồn: http://stackoverflow.com/questions/8141125/regex-for-password-php
Với regexp bạn có làm với mọi loại match.
Phần này chỉ cho bạn cách validate với password.
Trước hết là chuỗi regexp:
^\S*(?=\S{8,128})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])(?=\S*[\W])\S*$
Từng phần nó là:
^: Bắt đầu tính từ kí tự đầu tiên
\S*: thỏa mãn tất cả các tập hợp phía sau
(?=\S{8,128}): tập hợp này xác định có ít nhất 8 kí tự và nhiều nhất 128 kí tự
(?=\S*[a-z]): tập hợp chứa ít nhất các kí tự chữ thường
(?=\S*[A-Z]): tập hợp chứa ít nhất các kí tự chữ hoa
(?=\S*[\d]): tập hợp chứa ít nhất 1 số
(?=\S*[\W]): tập hợp chứa ít nhất 1 kí tự đặc biệt
$: tính đến kí tự cuối cùng
Kết luận: so sánh password phải thỏa mãn:
– Chứa 8 đến 128 kí tự
– Chứa ít nhất 1 chữ thường
– Chứa ít nhất 1 chữ hoa
– Chứa ít nhất 1 số
– Chứa ít nhất 1 kí tự đặc biệt