【问题标题】:DataTime Regular expression yyyy/MM/dd HH:mm and dd/MM/yyyy HH:mm and not Check For 30 and february [duplicate]DateTime 正则表达式 yyyy/MM/dd HH:mm 和 dd/MM/yyyy HH:mm 而不是检查 30 和 2 月 [重复]
【发布时间】:2017-08-26 10:39:07
【问题描述】:

我需要一个正则表达式来匹配

yyyy/MM/dd HH:mm

还有一个匹配

dd/MM/yyyy HH:mm

还检查 30 和 31 和。使用 JavaScript

例如匹配

2000/02/28 11:55

28/02/2000 11:55

例如不匹配

2000/02/31 11:55

31/02/2000 11:55

【问题讨论】:

  • 你试过了吗? 每个月强制执行正确的天数怎么样?
  • 我试试regexlib.com/…
  • 你使用什么语言?
  • 使用 JavaScript

标签: regex


【解决方案1】:

如果您想了解正则表达式,我将提供帮助:

如果你想匹配 yyyy/MM/dd HH:mm 然后使用

\d{4}\/\d{2}\/\d{2}\s\d{2}:\d{2}

See it working here

解释一下:

\d{4} four digits (year) yy
\/ escape slash
\d{2} two digits (month) MM
\/ escape slash
\d{2} two digits (date) dd
\s single space character
\d{2} two digits (hour) hh
: colon (string literal)
\d{2} two digits (minutes) mm

对于您的其他版本,只需交换 4 和 2

\d{2}\/\d{2}\/\d{4}\s\d{2}:\d{2}

然后您可以检查有效数字的日期 - 但正如 Tim Biegeleisen 所说,您应该检查所有月份。

【讨论】:

  • 我不想匹配 2000/02/31 11:55
  • 这不会发生在正则表达式中。您首先需要验证字符串是否采用您想要的时间格式,然后 然后 您可以确定它是否是有效日期。看看this post,或许对你有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
相关资源
最近更新 更多