我在我的一个变量中从数据库中获取了一个日期字段,目前我正在使用以下代码检查日期是否为"yyyy-mm-dd"格式
if ( $dat =~ /\d{3,}-\d\d-\d\d/ )
Run Code Online (Sandbox Code Playgroud)
我的问题是,有没有更好的方法来实现这一目标.
非常感谢
在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)