最初问有关用户名正则表达式的问题:不能以字符开头或结尾的用户名
如何使用Ruby on Rails的正确语法实现此目标?
这是我当前的User.rb验证:
validates_format_of :username, with: /\A[\w\._]{3,28}\z/i
该验证允许使用下划线和下划线,但是目标是不允许在用户名的开头或结尾使用下划线和下划线。
我正在尝试使用Rails regex实现这些规则:
有效:
Spicy_Pizza
97Indigos
Infinity.Beyond
无效:
_yahoo
powerup.
un__real
no..way
您可以使用
/\A(?=.{3,28}\z)[a-zA-Z0-9]+(?:[._][a-zA-Z0-9]+)*\z/
参见Rubular演示。
细节
\A
-字符串开始(?=.{3,28}\z)
-允许/需要3到28个除换行符以外的其他字符,直到字符串末尾[a-zA-Z0-9]+
-一个或多个ASCII字母/数字(?:[._][a-zA-Z0-9]+)*
-0+序列:
[._]
-一个.
或_
[a-zA-Z0-9]+
-一个或多个ASCII字母/数字\z
-字符串结尾。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句