Самым мощным средством проверки для решения этой проблемы является ограничение Regex .
Для вашего случая (очень простого случая) достаточно использовать (см. Длина )
/**
* @Assert\Length(max=4096, minMessage="...", maxMessage="...")
* @Assert\Regex(
* pattern = "/^[a-z0-9]+$/i",
* htmlPattern = "^[a-zA-Z0-9]+$",
* message="Your name must contain only letter or numbers"
* )
*/
Можно объединить оба валидатора здесь только в одном ограничении валидатора, но имейте в виду, что вы теряете возможность показывать точное сообщение об ошибке, если у вас есть несколько условий (таких как длина и запретchars)
/**
* @Assert\Regex(
* pattern = "/^[a-z0-9]{1,4096}$/i",
* htmlPattern = "^[a-zA-Z0-9]{1,4096}$",
* message="Your name must contain only letter or numbers and must have length between 1 and 4096"
* )
*/
Где {1,4096} - значения min и max для пределовдлина строки.
htmlPattern и message являются необязательными.