如果在表单字段中输入1到11个字符之间的任何内容,则下面的代码会正确阻止提交表单。
但是,输入任何类型的12个字符后,表单字段将通过验证。
$objGroup->addField('phone', 'Location Phone', VFORM_CUSTOM,
array(
'required' => false,
'validation' => '/^\d{3}-\d{3}-\d{4}$/',
'minLength' => 12,
'maxLength' => 12
),
array(
'type' => 'Location Phone not entered correctly',
'minLength' => 'Location Phone must be entered like ###-###-####'
),
array(
'hint' => '###-###-####',
'tip' => 'Enter your phone number.',
'default' => $GLOBALS['phone']
)
);
只要在表单字段中输入内容,我只需要允许值字符串为999-999-9999。我的代码有什么不对?
无法提交包含11个字符的表单字段条目(请注意红色的错误消息):
带有12个字符的表单字段条目,其中最后一个字符不是数字(观察没有错误消息红色)表格可以提交:
除了VFB文档
#### Custom field types
* `VFORM_CUSTOM`
This generates a text input field with a custom validation regular expression
* `VFORM_CUSTOM_TEXT`
This generates a textarea input field with a custom validation regular expression
##### Example - Validating a social security number
$objSocialSecurity = $objForm->addField(
"socialsecurity",
"Your social security number",
VFORM_CUSTOM,
array(
"validation" => "/^\d{3}-\d{2}-\d{4}$/"
),
array(
"type" => "Invalid Social Security number"
)
);
我的试用版&错误测试:
"validation"
和"type"
之间存在某种脱节。"validation"
和"type"
的位置。它没有成功。"type"
更改为"validation"
。它没有成功。答案 0 :(得分:1)
尝试从正则表达式中删除^
和$
字符:
/\d{3}-\d{3}-\d{4}/
minLength和maxLength为12时,^
和$
变得多余,并且经常会导致验证问题。