[英]Issue with a regular expression in date format
我想在PHP中验证日期格式YYYY-MM-DD
。 但有些事情是错的,我找不到它? 正则表达式告诉我格式错误,当它是正确的时候。
$datePattern = '/^(2[0-9][0-9][0-9])\-(0[1-9]|1[0-2]])\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/';
$date = '2011-11-05';
if(!preg_match($datePattern,$date)){
die('Wrong format in date!');
}
你有一个额外]
在您的正则表达式(月子表达式)是没有必要的。 所以它应该是
^(2[0-9][0-9][0-9])\-(0[1-9]|1[0-2])\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$
你可以稍微简化一下:
/^(2[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[0-1])$/
正则表达式中有一个额外的]
:
'/^(2[0-9][0-9][0-9])\-(0[1-9]|1[0-2]])\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/'
^
算了吧。
并且正则表达式不是验证日期的最佳工具。 您应该使用checkdate函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.