Rails validates_format_of - PullRequest
       9

Rails validates_format_of

3 голосов
/ 18 марта 2010

Я хочу использовать validates_format_of для проверки строки через запятую, состоящей только из букв (маленьких и заглавных букв) и цифр.

Зв

example1, example2, 22example44, ex24

нет: ^ & *, <>, asfasfsdafas <#% $ # </p>

Обычно я хочу, чтобы пользователи вводили запятые (включая цифры) без специальных символов.

Я буду использовать его для проверки тегов от acts_as_taggable_on. (например, я не хочу быть допустимым тегом.

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 18 марта 2010
^[A-Za-z0-9]+([ \t]*,[ \t]*[A-Za-z0-9]+)*$

должно соответствовать строке CSV, которая содержит только эти символы, будь то одно значение или несколько.

0 голосов
/ 18 марта 2010

Вы всегда можете проверить регулярные выражения на rubular , вы обнаружите, что регулярные выражения как tiftiks, так и Tims работают, хотя и с некоторыми странными крайними случаями с пробелами.

Решение Тима может быть расширено за счет включения начальных и конечных пробелов, и тогда оно должно делать то, что вы хотите, следующим образом: -

^\s*[A-Za-z0-9]+(\s*,\s*[A-Za-z0-9]+)*\s*$

Предположительно, после проверки входной строки вы захотите превратить ее в массив тегов для повторения. Вы можете сделать это следующим образом: -

array_var = string_var.delete(' ').split(',')
0 голосов
/ 18 марта 2010

^([a-zA-Z0-9]+,\s*)*[a-zA-Z0-9]+$

Обратите внимание, что это регулярное выражение не соответствует значениям с пробелами, поэтому оно не будет соответствовать нескольким словам, таким как "abc xyz, fgh qwe". Он соответствует любому количеству пробелов после запятых. Вам может не понадобиться ^ или $, если validates_format_of пытается соответствовать всей строке, я никогда не использовал Rails, поэтому я не знаю об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...