2010-08-11 108 views
1

我想验证我的用户,因此他们只能在他们的用户名中使用a-z和-正则表达式+ Ruby On Rails

validates_format_of :username, :with => /[a-z]/ 

但是,这条规则也允许_-和大写字母。我如何只允许字母,数字,_-

回答

0

您的正则表达式不够具体。您正在寻找类似:

:with => /\A[a-z_]+\Z/ 
3

此正则表达式可以确保第一个字符是一个小写字母,其余的要么是小写字母,数字,连字符或下划线。

/\A[a-z][a-z0-9_-]+\Z/ 

如果你不关心的第一个字符,你可以使用

/\A[a-z0-9_-]+\Z/ 

如果你想确保名称4个字符长最小:

/\A[a-z][a-z0-9_-]{3,}\Z/ 

如果你想确保长度在4和8之间

/\A[a-z][a-z0-9_-]{3,7}\Z/ 

如果长度应该是6

/\A[a-z][a-z0-9_-]{5}\Z/