Regex cho thời gian (24 giờ HH:MM)

Dùng /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/ để kiểm tra xem toàn bộ chuỗi có phải là thời gian hợp lệ theo định dạng 24 giờ HH:MM hay không. Mọi ví dụ bên dưới đều đã được kiểm thử với mẫu này, và bạn có thể mở chúng trong Regex Tester với sẵn dữ liệu mẫu.

Cập nhật

/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/
Mở trong Regex Tester
Đầu vàoKết quả
00:00✓ Khớp
23:59✓ Khớp
14:30:15✓ Khớp
09:05✓ Khớp
24:00✗ Không khớp
9:30✗ Không khớp
12:60✗ Không khớp
12:30:60✗ Không khớp

Cách mẫu hoạt động

PhầnÝ nghĩa
(?:[01]\d|2[0-3])Giờ từ 00 đến 23
:Dấu hai chấm
[0-5]\dPhút từ 00 đến 59
(?::[0-5]\d)?Giây (không bắt buộc)

Ví dụ mã

JavaScript

const re = /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?', value))

PHP

preg_match('/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/', $value) === 1;

Ghi chú và giới hạn

Làm số 0 đứng đầu thành tùy chọn bằng (?:[01]?\d|2[0-3]) nếu người dùng nhập kiểu 9:30.

Câu hỏi thường gặp

Regex cho thời gian (24 giờ HH:MM) là gì?
/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/ — mẫu này khớp với toàn bộ chuỗi. Xem bảng phía trên để biết mỗi phần làm gì.
Những ví dụ nào khớp?
Trong các ví dụ đã kiểm thử, những ví dụ khớp là: 00:00, 23:59, 14:30:15, 09:05. Các ví dụ còn lại không khớp.
Làm sao để kiểm thử regex này?
Nhấn “Mở trong Regex Tester” — mẫu, cờ và văn bản mẫu sẽ được nạp tự động, và các kết quả khớp sẽ được tô sáng khi bạn chỉnh sửa.