在rails上的ruby中创建正则表达式以验证用户名

时间:2014-12-05 01:04:34

标签: ruby-on-rails ruby regex ruby-on-rails-3 ruby-on-rails-3.2

我需要在rails上的ruby中创建一个正则表达式,以便按照以下规则验证用户名:

 1)- The user name accept only lowercase letters, numbers,dashes and underscores
 2)- The first character must be a lowercase letter
 3)- The username have as minimum 6 characters and 30 characters as maximun

我觉得有些像这样,但我不太确定

  /^ ([a-z][a-z\_-0-9]+){6,30}  $/

1 个答案:

答案 0 :(得分:3)

我建议如下:

/^[a-z][a-z\-0-9_]{5,29}$/

我会把它分解:

  • ^[a-z] - 序列以(^)小写字符
  • 开头
  • [a-z\-0-9_] - 该组中的任何字符
  • {5,29} - 前一组字符的5到29之间(最多30个,减去序列开头的那个)
  • $序列的结尾

你提到了角色类 - 当然,你可以使用它们。我通常不这样做,因为它们不是那么便携(有人可能会在这里说错,并且在这里证明我错了)而且我认为它们并不容易理解,仅仅因为我倾向于忘记哪些是哪种。 YMMV