如何自定义验证联系表7中的输入

时间:2019-06-10 21:26:40

标签: regex wordpress contact-form-7

我正在使用联系表格7,并且创建了一个文本输入供用户输入日期。我在占位符mm / dd / yyyy中。目前,我正在尝试在该输入中验证此格式。我尝试使用日期标签,但在野生动物园中却没有,所以这就是我使用文本标签的原因。

add_filter('wpcf7_validate_text', 'custom_date_validation', 20, 2);
add_filter('wpcf7_validate_text*', 'custom_date_validation', 20, 2);

function custom_text_validation($result, $tag) {
$type = $tag->type; //object instead of array
$name = $tag->name; //object instead of array

if($name == 'last-name') {
    $value = $_POST[$date-signed];
    if(!preg_match("^((0|1)\d{1})/((0|1|2)\d{1})/((19|20)\d{2})", $value )){ //new regex statement
        $result->invalidate($tag, "Invalid Date");
    }
}
return $result;

}

我希望当用户没有为联系表7输入正确的表单时显示无效的日期。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此正则表达式(由于我们在开始和结尾处都使用了锚点,因此更为精确),并且您在正则表达式中所做的一些错误已得到纠正

^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([1][9][9]\d|[2]\d{3})$

日期格式:mm / dd / yyyy

此示例中的年份应介于1990年<年<2999年之间(您可以对其进行编辑以使其适合您的需要)