【发布时间】:2015-06-18 15:25:52
【问题描述】:
我有一个日期字段,它采用“dd/MM/yyy”格式或“yyyy”格式。 所以我使用了这个正则表达式:
REGEX_DATE = "^((([0]{1}[1-9]{1})|([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))"
+ "/(([0]{1}[1-9]{1})|([1]{1}[0-2]{1}))/([0-9]{4}))"
+ "|(([1]{1}([9]{1})[1-9]{1}[0-9]{1}))"
+ "|(([2]{1}([0-9]{3}))) "
+ "|^((([0]{1}[1-9]{1})|([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))(([0]{1}[1-9]{1})|([1]{1}[0-2]{1}))([0-9]{4}))"
+ "|^$";
但是格式为“yyyy”的日期不起作用。我的错在哪里?
谢谢!
【问题讨论】:
-
你确实意识到
{1}是完全多余和不必要的,对吧? -
它对我来说很好用。是否有特定的输入不起作用?
-
我建议使用 stackoverflow.com/questions/43802/… 而不是正则表达式。
-
我不知道这是否是一个错字,但这是否意味着是一个 3 位数的年份?
dd/MM/yyy? -
@Chris - 您是要解析日期还是验证日期?无论哪种方式,使用内置语言而不是正则表达式可能会更好。
标签: regex