【发布时间】:2015-08-13 05:07:40
【问题描述】:
我正在尝试为我创建的重力表单设置一些表单验证。我需要验证的字段之一是美国邮政编码。我想传递遵循 nnnnn 和 nnnnn-nnnn 模式的 ZIP。这是我的代码:
if ( $field->type == 'address' ) {
$zip = rgar( $value, $field->id . '.5' );
if ( preg_match( "(^(?!0{5})(\d{5})(?!-?0{4})(|-\d{4})?$)", $zip ) && ! $field->get_input_property( '5', 'isHidden' )
) {
$result['is_valid'] = false;
$result['message'] = empty( $field->errorMessage ) ? __( 'Please enter a valid ZIP code (ie. 00000 or 00000-0000).', 'gravityforms' ) : $field->errorMessage;
} else {
$result['is_valid'] = true;
$result['message'] = '';
}
}
我的表单仍然无法通过验证,我不知道为什么。我仔细检查了.5 是邮政编码的正确输入字段编号。有什么建议吗?
我的表格可以在http://marcusjones.wpengine.com/找到
【问题讨论】:
-
试试
preg_match('/^(?!0{5})(\d{5})(?!-?0{4})(|-\d{4})$/', $zip, $matches)。注意正则表达式周围的单个撇号。 -
@stribizhev 仍然没有骰子。我在想这是一个重力形式的特定问题……也许是语法? No 正则表达式似乎通过了验证。
标签: php regex wordpress gravity-forms-plugin