【问题标题】:Using Gravity Forms gform_field_validation for Full Name to check for first and last name使用 Gravity Forms gform_field_validation 作为全名来检查名字和姓氏
【发布时间】:2021-02-27 21:55:00
【问题描述】:

我想使用 Gravity Forms 中的 gform_field_validation 函数来验证全名字段,仅当两个名称之间有空格时,验证有人不只是输入一个名字,而是把它放在第一个和最后一个名字。

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

【问题讨论】:

  • 检查6.电话字段验证 部分带有电话号码验证,它展示了如何使用正则表达式。顺便说一句,应该是^\S+\s+\S+$,不是吗?两个单词之间有一个或多个空格。

标签: javascript regex wordpress forms gravityforms


【解决方案1】:

试试这个:

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+)+ - 一个或多个空格序列,后跟单词字符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多