使用 Gravity Forms gform_field_validation for Full Name 检查名字和姓氏

问题描述

我想使用 Gravity Forms 中的 gform_field_validation 函数来验证全名字段,仅当两个名字之间有空格时,验证某人没有输入一个名字,并将其放在第一位和姓氏。

我相信我已经找到了正确的正则表达式 /^[a-zA-Z ]+$/ .就是不知道怎么实现。

解决方法

试试这个:

add_filter( 'gform_field_validation','validate_fullname',10,4 );
function validate_fullname( $result,$value,$form,$field ) {
    $pattern = "/^\w+\s\w+$/";
    if ( ! preg_match( $pattern,$value ) ) {
        $result['is_valid'] = false;
        $result['message']  = 'Please enter a valid full name';
    } else {
        $result['is_valid'] = true;
        $result['message']  = '';
    }
 
    return $result;
}

说明:

  • ^ - 字符串开头的锚点
  • \w+ - 1 个以上的单词字符
  • \s - 一个空格
  • \w+ - 1 个以上的单词字符
  • $ - 字符串末尾的锚点

您可能想要一个更宽容的正则表达式,允许包含多个单词:

    $pattern = "/^\w+(\s\w+)+$/";

说明:

  • (\s\w+)+ - 一个或多个空格序列,后跟单词字符