正则表达式+ Ruby On Rails

时间:2010-08-11 09:33:13

标签: ruby-on-rails regex

我想验证我的用户,因此他们只能在用户名中使用a-z和-

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

但是,此规则还允许_ -和大写字母。我如何才允许使用字母,数字_-

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

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

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