我如何在Perl中检查有效的日期格式?

Ana*_*hah 1 format perl date


我在我的一个变量中从数据库中获取了一个日期字段,目前我正在使用以下代码检查日期是否为"yyyy-mm-dd"格式

if ( $dat =~ /\d{3,}-\d\d-\d\d/ )
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有更好的方法来实现这一目标.

非常感谢

wr.*_*wr. 5

OWASP验证的正则表达式库的与闰年支持美国格式日期的版本:

^(:( :( ?: 0 [13578] | 1 [02]???)?(/ | - |.)31)\ 1 |(:( ?: 0 [1,3-9] | 1 [0-2])(/ | - |)(?: 29 | 30)\ 2))(:( ?: 1 [6-9] | [2-9]\d)\ d {2.? })$ | ^(?: 0 2(/ | - |?).(?:( :( ?: 1 [6-9] | [2-9]\d)?29\3(?: 0 [48] | [2468] [048] | [13579] [26])|(:( ?: 16 |?[2468] [048] | [3579] [26])00))))$ | ^( ?:( ?: 0 [1-9])|(?:??1 [0-2]))(/ | - |)(?: 0 [1-9] | 1\d | 2 [0 -8])\ 4(:( ?: 1 [6-9] |?[2-9]\d)\ d {2})$

正则表达式库包含沿的其他建议,它被传递给你的问题的线条简化版本:

^\d{4}-\d{1,2}-\d{1,2}$
Run Code Online (Sandbox Code Playgroud)