Регулярное выражение, которое вызывает строку «a? C» неверно? - PullRequest
4 голосов
/ 14 октября 2008

В моей пользовательской модели у меня есть атрибут с именем "псевдоним", и он проверяется следующим образом:

validates_format_of: псевдоним,: with => / [a-zA-Z0-9] $ /,: allow_nil => true

Тем не менее, в настоящее время эта строка разрешена как действительная:

а? С

Я хочу принимать только буквенно-цифровые строки - кто-нибудь знает, почему мое регулярное выражение не работает? Если кто-нибудь может предложить лучшее регулярное выражение, я весь в ушах.

Ответы [ 2 ]

17 голосов
/ 14 октября 2008

Это будет соответствовать истине, если строка заканчивается допустимым символом. Нет проверки на что-либо в середине. Попробуйте это:

^[a-zA-Z0-9]*$
10 голосов
/ 14 октября 2008

Вам нужно закрепить рисунок с обеих сторон:

/^[a-zA-Z0-9]+$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...