Ngữ pháp biểu thức chính quy

I. Biểu thức kiểm tra số học

1. Số nguyên: ^[0-9]*$
2. Số có n chữ số: ^\d{n}$
3. Số có ít nhất n chữ số: ^\d{n,}$
4. Số có từ m đến n chữ số: ^\d{m,n}$
5. Số nguyên dương hoặc 0: ^(0|[1-9][0-9]*)$
6. Số thập phân không quá 2 chữ số: ^([1-9][0-9]*)+(\.[0-9]{1,2})?$
7. Số thập phân có 1-2 chữ số: ^(\-)?\d+(\.\d{1,2})?$
8. Số thực bao gồm cả âm: ^(\-|\+)?\d+(\.\d+)?$
9. Số dương có 2 chữ số thập phân: ^[0-9]+(.[0-9]{2})?$
10. Số dương có 1-3 chữ số thập phân: ^[0-9]+(.[0-9]{1,3})?$
11. Số nguyên dương khác 0: ^[1-9]\d*$ hoặc ^([1-9][0-9]*){1,3}$ hoặc ^\+?[1-9][0-9]*$
12. Số nguyên âm khác 0: ^-[1-9][0-9]*$ hoặc ^-[1-9]\d*$
13. Số không âm: ^\d+$ hoặc ^[1-9]\d*|0$
14. Số không dương: ^-[1-9]\d*|0$ hoặc ^((-\d+)|(0+))$
15. Số thập phân không âm: ^\d+(\.\d+)?$ hoặc ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16. Số thập phân không dương: ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ hoặc ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17. Số thập phân dương: ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ hoặc ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18. Số thập phân âm: ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ hoặc ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19. Số thực bất kỳ: ^(-?\d+)(\.\d+)?$ hoặc ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

II. Biểu thức kiểm tra ký tự

1. Ký tự tiếng Trung: ^[\u4e00-\u9fa5]{0,}$
2. Ký tự chữ và số: ^[A-Za-z0-9]+$ hoặc ^[A-Za-z0-9]{4,40}$
3. Chuỗi có độ dài 3-20: ^.{3,20}$
4. Chuỗi chỉ chứa chữ Latin: ^[A-Za-z]+$
5. Chuỗi chữ Latin viết hoa: ^[A-Z]+$
6. Chuỗi chữ Latin viết thường: ^[a-z]+$
7. Chuỗi chữ và số: ^[A-Za-z0-9]+$
8. Chuỗi chứa chữ, số và gạch dưới: ^\w+$ hoặc ^\w{3,20}$
9. Ký tự hỗn hợp Trung-An-Số-Gạch dưới: ^[\u4E00-\u9FA5A-Za-z0-9_]+$
10. Ký tự Trung-An-Số (không gạch dưới): ^[\u4E00-\u9FA5A-Za-z0-9]+$ hoặc ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11. Cho phép ký tự đặc biệt: [^%&',;=?$\x22]+
12. Cấm ký tự ~: [^~\x22]+

III. Biểu thức đặc biệt

1. Địa chỉ email: ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2. Tên miền: [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3. URL: [a-zA-z]+://[^\s]* hoặc ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
4. Số điện thoại di động: ^(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])\d{8}$ (Gợi ý: ^([1][3,4,5,6,7,8,9])\d{9}$)
5. Số điện thoại cố định: ^(\$\d{3,4}-)|\d{3.4}-)?\d{7,8}$ 
6. Số điện thoại nội địa: \d{3}-\d{8}|\d{4}-\d{7} 
7. CMND 18 chữ số: ^((\d{18})|([0-9x]{18})|([0-9X]{18}))$
8. Tài khoản hợp lệ: ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
9. Mật khẩu cơ bản: ^[a-zA-Z]\w{5,17}$
10. Mật khẩu mạnh: ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$  
11. Định dạng ngày: ^\d{4}-\d{1,2}-\d{1,2}
12. Tháng hợp lệ: ^(0?[1-9]|1[0-2])$
13. Ngày hợp lệ: ^((0?[1-9])|((1|2)[0-9])|30|31)$ 
14. Định dạng tiền tệ:
15.   1. Định dạng 10000.00 hoặc 10,000.00: ^[1-9][0-9]*$ 
16.   2. Sửa lỗi 0: ^(0|[1-9][0-9]*)$ 
17.   3. Cho phép âm: ^(0|-?[1-9][0-9]*)$ 
18.   4. Định dạng thập phân: ^[0-9]+(.[0-9]+)?$ 
19.   5. Yêu cầu 2 chữ số thập phân: ^[0-9]+(.[0-9]{2})?$ 
20.   6. Linh hoạt 1-2 chữ số thập phân: ^[0-9]+(.[0-9]{1,2})?$ 
21.   7. Định dạng có dấu phẩy: ^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$ 
22.   8. Định dạng hoàn chỉnh: ^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$ 
23.   Ghi chú: Loại bỏ ký tự \ khi sử dụng
24.   Tập tin XML: ^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
25.   Ký tự tiếng Trung: [\u4e00-\u9fa5]
26.   Ký tự hai byte: [^\x00-\xff] 
27.   Dòng trống: \n\s*\r 
28.   Tag HTML: <(\S*?)[^>]*>.*?</\1>|<.*? /> 
29.   Khoảng trắng đầu/cuối: ^\s*|\s*$ hoặc (^\s*)|(\s*$) 
30.   Số QQ: [1-9][0-9]{4,} 
31.   Mã bưu điện: [1-9]\d{5}(?!\d) 
32.   Địa chỉ IP: \d+\.\d+\.\d+\.\d+ 
33.   Định dạng IP: ((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)) 
Ký hiệu Mô tả
\ Ký hiệu đặc biệt
^ Bắt đầu chuỗi
$ Kết thúc chuỗi
* Lặp lại 0-n lần
+ Lặp lại 1-n lần
? Lặp lại 0-1 lần
{n} Lặp lại n lần
{n,} Lặp lại ít nhất n lần
{n,m} Lặp lại từ n đến m lần
? (sau toán tử) Chế độ tham lam tối thiểu
. Ký tự bất kỳ (trừ \n,\r)
(pattern) Nhóm bắt buộc
(?:pattern) Nhóm không lưu trữ
(?=pattern) Kiểm tra phía trước
(?!pattern) Phủ định phía trước
(?<=pattern) Kiểm tra phía sau
(?<!pattern) Phủ định phía sau
x|y Lựa chọn x hoặc y
[xyz] Tập hợp ký tự
[^xyz] Tập hợp phủ định
[a-z] Khoảng ký tự
[^a-z] Phủ định khoảng ký tự
\b Biên từ
\B Không phải biên từ
\d Ký tự số
\D Không phải ký tự số
\s Khoảng trắng
\S Không phải khoảng trắng
\w Ký tự chữ/number/underscore
\W Phủ định \w
\p{P} Ký tự dấu câu Unicode
<> Biên từ chính xác

Thẻ: biểu-thức-chính-quy kiểm-tra-dữ-liệu chuỗi-ký-tự số-học định-dạng-dữ-liệu

Đăng vào ngày 7 tháng 8 lúc 13:41