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

Using Gravity Forms gform_field_validation for Full Name to check for first and last name

我想使用 Gravity Forms 中的 gform_field_validation 函数来验证全名字段,仅当两个名字之间有一个 space 时,验证某人不只是输入一个名字, 并输入名字和姓氏。

我相信我已经找到了正确的正则表达式 /^[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 - 单个 space
  • \w+ - 1+字字符
  • $ - 字符串末尾的锚点

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

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

解释:

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