Я проверяю текстовое поле в моей форме следующим образом:
$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');
Что я пытаюсь сделать, это - как я могу отобразить осмысленное сообщение об ошибке?
Например: если имя 'XYZ-', как я могу отобразить '- не допускается в имени.'
Есть ли способ, с помощью которого я могу получить доступ к тому символу, для которого не подходит регулярное выражение?
Вы бы порекомендовали что-нибудь еще?
Я думал о написании собственного валидатора, но регулярное выражение довольно простое, поэтому я не вижу в этом смысла.
Я нигде не смог найти достойную документацию для валидатора zend 'regex'.
Если я не перезаписываю сообщение об ошибке по умолчанию, я просто получаю что-то вроде:
';;; hhbhbhb' не соответствует шаблону '/ ^ [(a-zA-Z0-9)] + $ /' - который я явно не хочу отображать пользователю.
Буду признателен за ваш вклад.