Mẫu RegEx cho DateTime (2008-09-01 12:35:45) là gì?Mẫu regex cho datetime (2008-09-01 12:35:45) là gì?
tôi nhận được lỗi này:
No ending delimiter '^' found
Sử dụng:
preg_match('(?n:^(?=\d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(?(.0?2)(?=.{3,4}(1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00))|0?[1-9]|1\d|2[0-8])(?<sep>[/.-])(?<month>0?[1-9]|1[012])\2(?<year>(1[6-9]|[2-9]\d)\d{2})(?:(?=\x20\d)\x20|$))?(?<time>((0?[1-9]|1[012])(:[0-5]\d){0,2}(?i:\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$)', '2008-09-01 12:35:45');
Cung cấp cho lỗi này:
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in E:\www\index.php on line 19
Chỉ cần một nhận xét để nói rằng regex này sẽ không phát hiện nếu ngày, tháng hoặc thời gian có giá trị vượt trội đến mức tối đa. Ví dụ: 2012-65-65 99:99:99 sẽ hoạt động. Bên cạnh đó regex là tuyệt vời! – darkheir
Tôi đồng ý điều này không tốt để xác thực ngày –
Cụm từ thông dụng được hiển thị không nhằm xác thực ngày tháng. Nó dự định kiểm tra * cú pháp * của một chuỗi để xem liệu nó có giống như nó có thể là một ngày hay không. Sau khi nhận được các giá trị, bạn có thể xác thực ngày đã cho bằng cách sử dụng các hàm thư viện ngày bình thường. –