我可以找到dd / mm / yyyy的正则表达式但是有谁知道它还允许单个数字日期和月份(例如d / m / yyyy)?
答案 0 :(得分:6)
我认为以下是适合您的工作
^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$
答案 1 :(得分:3)
如果您有dd/mm/yyyy
的正则表达式,那么只需在第一个d
和m
字符后添加一个问号,以使其成为可选项。
但是,我要提醒一下,使用正则表达式进行日期验证确实存在问题 - 您可能会发现使用专用日期验证库更加灵活(您没有指定您正在使用的语言,但大多数语言都有提供良好的日期处理工具)
答案 2 :(得分:1)
^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1?[012])/(19|20)\d\d$
答案 3 :(得分:0)
答案 4 :(得分:0)
(?x)
(0?[1-9]|[12][0-9]|3[01])
/
(0?[12]|1[0-2])
/
[0-9]{4}