Mal*_*yer 7 php regex zend-framework zend-form
我正在验证表单中的文本字段,如下所示:
$name = new Zend_Form_Element_Text('name');
$name->setLabel('First Name:')
->setRequired(true)
->addFilter(new Zend_Filter_StringTrim())
->addValidator('regex',true,array('/^[(a-zA-Z0-9)]+$/'))
->addErrorMessage('Please enter a valid first name');
Run Code Online (Sandbox Code Playgroud)
我想要完成的是 - 如何显示有意义的错误消息?例如:如果名字是'XYZ-',我怎么能显示' - 名字中不允许'.
有没有办法可以访问正则表达式失败的角色?你会推荐别的东西吗?
我想过编写一个自定义验证器,但正则表达式很简单,所以我没有看到这一点.我无法在任何地方为zend'正则表达式'验证器找到合适的文档.
如果我没有覆盖默认错误消息,我简单地得到类似:';;;; hhbhbhb'与模式'/ ^ [(a-zA-Z0-9)] + $ /'不匹配 - 我显然不想显示给用户.
我很感激你的意见.
Bas*_*ler 16
对于zend标准验证器中的自定义错误消息,只需messages在实例化时将数组传递给验证器.它是一个数组,哪些键是错误类型(参见更多),以及值 - 错误消息.
->addValidator('regex', true,
array(
'pattern'=>'/^[(a-zA-Z0-9)]+$/',
'messages'=>array(
'regexNotMatch'=>'Your own custom error message'
)
)
)
Run Code Online (Sandbox Code Playgroud)
要查看所选验证器的其他错误类型的错误键,您可以参考它的源代码.对于regex验证器,它位于{Zend Framework Library} /Zend/Validate/Regex.php.
祝你好运 :)
用外行的话告诉用户你的限制是什么怎么样?喜欢
Error: Only the letters A to Z and numbers are allowed.
Run Code Online (Sandbox Code Playgroud)
(这让我想到了为什么名字可以包含数字的问题......)