Javascript 为什么ValidForm会忽略我的验证表达式?
如果在表单字段中输入了1-11个字符之间的任何内容,下面的代码将正确防止表单提交 但是,一旦输入了任何类型的12个字符,表单字段将通过验证Javascript 为什么ValidForm会忽略我的验证表达式?,javascript,php,regex,validform,Javascript,Php,Regex,Validform,如果在表单字段中输入了1-11个字符之间的任何内容,下面的代码将正确防止表单提交 但是,一旦输入了任何类型的12个字符,表单字段将通过验证 $objGroup->addField('phone', 'Location Phone', VFORM_CUSTOM, array( 'required' => false, 'validation' => '/^\d{3}-\d{3}-\d{4}$/', 'minLength' =>
$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"
)
);
我的试错测试:
“验证”
和“类型”
之间存在某种脱节“验证”
和“类型”
在各自数组()中的位置。它没有使它起作用“类型”
更改为“验证”
。它没有使它起作用尝试从正则表达式中删除
^
和$
字符:
/\d{3}-\d{3}-\d{4}/
minLength和maxLength为12时,
^
和$
变得多余,并且常常会自动导致验证问题。正则表达式没有任何问题。用户输入的内容是否真的有12个字符长,格式正确,没有多余的空格或任何奇怪的东西?感谢您查看这个@tenub。我附加到我的OQ中,向您展示了某些条目的行为。您的PHP日志中是否有任何错误/警告?否,此验证在客户端@justinwood进行,有两个并发的错误检查。第一个是你在@zerkms上找到的,第二个是'validation'=>'/^\d{3}-\d{3}-\d{4}$/'
和'type'=>'Location Phone not entered right'
我没有回答这个问题,我只是编辑了它!哦,对不起,我的错。我有点太激动了,它被解决了,我看错了投稿人。谢谢@user3320441!!