Я проверяю текстовое поле в своей форме следующим образом:
$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-', как я могу отобразиться, '-не позволяется в имени.'
Существует ли способ, которым я могу получить доступ к тому, для какого символа regex перестал работать? Вы рекомендовали бы что-то еще в целом?
Я думал о записи нестандартного элемента верификации, но regex довольно прост, таким образом, я не вижу точку. Я не мог найти достойную документацию для зенда 'regex' блоком проверки допустимости нигде.
Если я не переопределяю сообщение об ошибке по умолчанию, я простой получаю что-то как: ';;; hhbhbhb' не соответствует против шаблона '/^ [(a-zA-Z0-9)] + $ /' - который я, очевидно, не хочу отображать пользователю.
Я ценил бы Ваши исходные данные.
Как насчет того, чтобы рассказать пользователю обычным языком, каковы ваши ограничения? Например,
Error: Only the letters A to Z and numbers are allowed.
(что приводит меня к вопросу, почему имена могут содержать числа ...)