此问题已在此处有答案:
What is the regex pattern for datetime (2008-09-01 12:35:45 )?(14个答案)
5天前关闭。
我有一个正则表达式,它可以很好地工作的格式,除了它不工作时,每月不正确的日子是在11月31天或2月28天提供
^(([012][0-9])|(3[01]))-([0][1-9]|1[012])-\d\d\d\d [012]{0,1}[0-9]:[0-6][0-9]:[0-6][0-9]$
支持的格式DD-MM-YYYY HH:MM:SS
1条答案
按热度按时间i2loujxw1#
让我们来分解正则表达式模式:
31-(0[13578]|1[02])
(29|30)-(0[13-9]|1[0-2])
1.所有其他月份的有效日期,包括非闰年的2月:
(0[1-9]|1\d|2[0-8])-(0[1-9]|1[0-2])
1.闰年中二月的有效天数:
29-02-(?:\d{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)
1.时间验证:
s(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d
请注意,虽然regex可以在某种程度上用于验证日期,但它仍然不是执行此任务的最佳工具。如果可能的话,我建议使用专用的日期库或内置的语言函数来解析和验证日期。