正则表达式为dd / mm / yyyy和d / m / yyyy

时间:2011-09-23 13:32:28

标签: regex

  

可能重复:
  Regex to validate dates in this format d/m/yyyy

我可以找到dd / mm / yyyy的正则表达式但是有谁知道它还允许单个数字日期和月份(例如d / m / yyyy)?

5 个答案:

答案 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的正则表达式,那么只需在第一个dm字符后添加一个问号,以使其成为可选项。

但是,我要提醒一下,使用正则表达式进行日期验证确实存在问题 - 您可能会发现使用专用日期验证库更加灵活(您没有指定您正在使用的语言,但大多数语言都有提供良好的日期处理工具)

答案 2 :(得分:1)

^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1?[012])/(19|20)\d\d$

答案 3 :(得分:0)

我认为你可以使用这个

(\d{1,2})/(\d{1,2})/(\d{4})

工作示例: http://regexr.com?2up1s

答案 4 :(得分:0)

(?x)
(0?[1-9]|[12][0-9]|3[01])
/
(0?[12]|1[0-2])
/
[0-9]{4}