我正在尝试以 MM/DD/YYYY 的格式实现出生日期的正则表达式。我不知道如何强制用户为 MM 输入 01-12,为一天输入 01-31,为年份输入任何四位数字。我只是有一个 MM/DD/YYYY 的正则表达式,即 @"^\d{2}/\d{2}/\d{4}$"。任何建议将不胜感激。
谢谢
我正在尝试以 MM/DD/YYYY 的格式实现出生日期的正则表达式。我不知道如何强制用户为 MM 输入 01-12,为一天输入 01-31,为年份输入任何四位数字。我只是有一个 MM/DD/YYYY 的正则表达式,即 @"^\d{2}/\d{2}/\d{4}$"。任何建议将不胜感激。
谢谢
正则表达式变得非常丑陋,因此最好使用合法的日期解析器。
也就是说,这应该有效,并返回 MM、DD 和 YYYY 匹配组。
((?:0[1-9])|(?:1[0-2]))\/((?:0[0-9])|(?:[1-2][0-9])|(?:3[0-1]))\/(\d{4})
推荐http://www.rubular.com或类似的测试/开发正则表达式。
我最近在我的一个项目中使用了这个正则表达式
^(0?[1-9]|1[0-2])/([0-2]?[1-9]|[1-3][01])/\d{4}$
这显然适用于dd/MM/yyyy
格式中的所有日期,但在不需要时您可以不指定“0”。所以你可以写 '01/01/2000' 和 '1/1/2000'。