我需要在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} $/
答案 0 :(得分:3)
我建议如下:
/^[a-z][a-z\-0-9_]{5,29}$/
我会把它分解:
^[a-z]
- 序列以(^
)小写字符[a-z\-0-9_]
- 该组中的任何字符{5,29}
- 前一组字符的5到29之间(最多30个,减去序列开头的那个)$
序列的结尾你提到了角色类 - 当然,你可以使用它们。我通常不这样做,因为它们不是那么便携(有人可能会在这里说错,并且在这里证明我错了)而且我认为它们并不容易理解,仅仅因为我倾向于忘记哪些是哪种。 YMMV