如何用关联表单7自定义验证输入

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (4)

我正在使用关联表单7,我为用户创建了一个输入日期的文本输入。我在占位符mm / dd / yyyy。目前我正在尝试在该输入中验证此格式。我尝试使用日期标记,但在safari上没有,所以这就是我使用文本标记的原因。

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表格来显示无效日期。

提问于
用户回答回答于

你可以尝试这个正则表达式(它更精确,因为我们在开头和结尾使用锚点)你正在修复你的正则表达式中的一些错误

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

日期模式:mm / dd / yyyy

这个例子中的年份应该在1990 <year <2999之间(你可以编辑它以适合你想要的)

扫码关注云+社区

领取腾讯云代金券