【发布时间】:2019-03-28 19:21:01
【问题描述】:
我正在尝试验证仅接受有效日期的文本字段,例如21-03-1980 但是验证码没有被触发,但我看不出有什么问题。
这是我正在使用的代码:
function custom_dob_validation_filter($result,$tag){
$name = $tag->name;
if($name == 'datemdy'){
$datemdy = $_POST['datemdy'];
if($datemdy != '') {
if(!preg_match('/^([0-9]{1,2})\\/([0-9]{1,2})\\/([0-9]{4})$/', $datemdy)) {
$result->invalidate( $tag, "Please Enter a Valid Date of Birth" );
}
}
}
return $result;
}
add_filter( 'wpcf7_validate_dob*', 'custom_dob_validation_filter', 10, 2 );
add_filter( 'wpcf7_validate_dob', 'custom_dob_validation_filter', 10, 2 );
任何帮助将不胜感激。
TIA
【问题讨论】:
-
您可以考虑使用DateTime 而不是正则表达式来验证日期。这部分在你的正则表达式
\\/应该是-就像^([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})$ -
可能
$datemdy的开头/结尾有一些空格? -
'add_filter' 行是故意的还是错误的?
-
这是为了包括对输入的正常和必需版本的验证
标签: php regex wordpress contact-form-7