preg_match验证出生日期

时间:2012-04-29 19:02:38

标签: regex date preg-match dob

到目前为止我已经知道了这一点:

$post_dob = '19/08/1982';                      
$pattern = '/^\[0-9]{2}\/\[0-9]{2}\/\[0-9]{4}\$/';


if(!preg_match($pattern, $post_dob)){                                
    $post_dob = explode('/', $_POST[$field]);
    $post_dob = $post_dob[2] . '-' . $post_dob[1] . '-' . $post_dob[0];  
    return $post_dob;
}else{
    return false;
}

如果我把 19/08/19823123 ,它似乎不会出错 我有什么想法我做错了吗?

1 个答案:

答案 0 :(得分:1)

尝试

$pattern = '@^[0-9]{2}/[0-9]{2}/[0-9]{4}$@';

但实际上,它比那复杂得多。您将不得不考虑30天与31天等的闰年和月份。