使用 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 后跟单词字符 的序列
我想使用 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 后跟单词字符 的序列