我试图制作一个日期regexp验证器,该验证器以下列格式保存日期:
必须有效:
2015年1月24日, 2000年1月1日, 01/2000, 2000年, 1600,
必须无效:
1599年, 12/1599, 15/12/1599,
我做了这个,但它不适用于dd/mm/yyyy
和mm/yyyy
^(1[6-9][0-9]{2}|2[0-9]{3})(?:[-\/](0[1-9]|1[0-2]))?(?:[-\/](0[1-9]|1[0-2])[-\/](0[1-9]|[1-2][0-9]|3[0-1]))?$
任何想法如何解决这个问题? THX
答案 0 :(得分:1)
请注意,您无法使用正则表达式轻松表达最复杂的日期检查,例如:
那就是说,以下正则表达式应该符合你的规范:
(?:(?:(0[1-9]|[1-2]\d|3[0-1])/)?(0[1-9]|1[0-2])/)?(1[6-9]\d{2}|[2-9]\d{3})
第一组将对应于日期部分,第二组对应于月份,第三组对应于年份。