PHP正则表达式,用于检查MM/DD是否在正确范围内


PHP regular expression to check if MM/DD are within proper range

我有一个表单一直向用户抛出错误,因为他们不明白他们的出生日期需要使用MM/DD格式。我不是在问年份,但有些人把它输入MM/YY,没有意识到我想要的是而不是年份。

我试着用regex做这个,但不能弄清楚,所以我写了这个

$ckdate = explode("/", $mySub['Birthday']);
if($ckdate[0]>12 || $ckdate[0]<1){
    echo 'Please make sure your birthdate is in a valid format MM/DD, we ask for month and day only'; 
    return;
}
if($ckdate[1]>31 || $ckdate[1]<1){
    echo 'Please make sure your birthdate is in a valid format MM/DD, we ask for month and day only'; 
    return;
}

这是最好的方法吗?这似乎效率低下。我想知道如果正则表达式是方式,或者有一个PHP函数来做到这一点?

您可以使用checkdate()并只输入一个虚拟年份。例如:checkdate($m, $d, 2000) .

注意:你可能想用闰年作为假年,这样2月29日出生的人就不会被冷落了。