Tôi đang cố gắng thực hiện bộ kiểm tra ngày tháng regex. Vấn đề tôi gặp phải là tôi đang sử dụng trường nhập với loại "date"
, hoạt động như một nét duyên dáng trong Chrome; nó sẽ mở ra một lịch giống như trong Chrome, nhưng trong phần còn lại nó không có gì, vì vậy tôi quyết định đi cho một đầu vào thủ công của ngày cho phần còn lại.Regex để xác thực ngày bằng PHP sử dụng định dạng là YYYY-MM-DD
Đây là thông điệp ném lỗi của tôi (tôi đang tìm kiếm định dạng YYYY-MM-DD):
$date_regex ='#^(19|20)\d\d[\- /.](0[1-9]|1[012])[\- /.](0[1-9]|[12][0-9]|3[01])$#';
$hiredate = $_POST['hiredate'];
if (!preg_match($date_regex, $hiredate)){
$errors[] = 'Your hire date entry does not match the YYYY-MM-DD required format.';
}
Tôi biết có rất nhiều ví dụ về điều này, nhưng tôi đã cố gắng như 20 đã và tôi không thể giải quyết nó. Có lẽ tôi đang thiếu một cái gì đó.
Dưới đây là lĩnh vực đầu vào, nếu phần nào có liên quan:
<input type="date" name="hiredate" />
Tại sao không phát nổ bằng - và sử dụng checkdate() thay thế? –
Có quy trình chuẩn không? Tôi tìm thấy nó trong một bài viết khác nhưng không làm việc cho tôi. FYI, tôi muốn để chúng chèn vào như YYYY/MM/DD hoặc YYYY.MM.DD hoặc YYYY-MM-DD. Để không kiềm chế chúng quá nhiều. – Cataneo
Sẽ dễ dàng hơn khi cung cấp 3 hộp '' riêng biệt với một chiều dài thích hợp và chỉ xác thực chữ số được hợp nhất thành định dạng thích hợp trên chương trình phụ trợ không? Bạn có thể thêm người nghe vào mỗi ô nhập liệu để chuyển sang hộp thoại tiếp theo nếu một người 'bấm phím' 2 chữ số. Người dùng không cung cấp cho một con chuột đằng sau về định dạng bạn cần và bạn sẽ chỉ làm họ thất vọng nhất nếu nó không phải là định dạng gốc riêng của họ – MonkeyZeus