Mẫu hoạt động như thế nào
| Phần | Ý nghĩa |
|---|---|
^\d{4} | Năm gồm bốn chữ số |
(?:0[1-9]|1[0-2]) | Tháng từ 01–12 |
(?:0[1-9]|[12]\d|3[01]) | Ngày từ 01–31 |
- | Dấu gạch ngang cố định giữa các phần |
Ví dụ code
JavaScript
const re = /^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])', value))PHP
preg_match('/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/', $value) === 1;
Ghi chú và giới hạn
Regex chỉ kiểm tra được định dạng chứ không kiểm tra được lịch: 2026-02-30 vẫn vượt qua. Sau khi khớp, hãy xác nhận bằng thư viện xử lý ngày hoặc new Date(value) rồi so sánh từng phần. Đây là định dạng ISO 8601 được <input type="date"> sử dụng.
Kiểm tra Regex
Nhập mẫu và xem các kết quả khớp được tô sáng ngay trong văn bản thử nghiệm.