Пользовательское значащее сообщение об ошибке для Zend RegEx Validator

Я проверяю текстовое поле в своей форме следующим образом:

$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)] + $ /' – который я, очевидно, не хотите показывать пользователю.

Буду признателен за ваши материалы.

Как насчет того, чтобы рассказать пользователю о непрофессионале, какие у вас ограничения? подобно

 Error: Only the letters A to Z and numbers are allowed. 

(Это приводит меня к вопросу, почему первые имена могут содержать числа …)

Для пользовательских сообщений об ошибках в стандартных валидаторах zend просто передайте массив messages в валидатор при создании экземпляра. Это массив, ключи которого являются типами ошибок (см. Далее), а значения – сообщения об ошибках.

 ->addValidator('regex', true, array( 'pattern'=>'/^[(a-zA-Z0-9)]+$/', 'messages'=>array( 'regexNotMatch'=>'Your own custom error message' ) ) ) 

Чтобы увидеть ключи ошибок для других типов ошибок выбранного валидатора, вы можете обратиться к его исходному коду. Для валидатора regex он находится в {Zend Framework Library} /Zend/Validate/Regex.php.

Удачи в проверке :).