Rails-不能以字符开头或结尾的用户名

科比乌斯

最初问有关用户名正则表达式的问题:不能以字符开头或结尾的用户名

如何使用Ruby on Rails的正确语法实现此目标?

这是我当前的User.rb验证:

validates_format_of :username, with: /\A[\w\._]{3,28}\z/i

该验证允许使用下划线和下划线,但是目标是不允许在用户名的开头或结尾使用下划线和下划线。

我正在尝试使用Rails regex实现这些规则:

  • 可以包含小写和大写字母和数字
  • 可以包含下划线和句点
  • 不能连续包含2个下划线
  • 不能连续包含两个句点
  • 不能以下划线或句号开头或结尾
  • 不能包含带有重音符号的字母
  • 长度必须在3到28个字母之间

有效:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

不能以字符开头或结尾的用户名

为什么Linux用户名不能以数字开头?

使用AJAX加载用户名-Rails

用户名regex在Rails 4中

Rails中的用户名路由

Rails-用户名小写验证

在 Rails 中设置默认用户名

Rails管理员“用户名已被占用”

尝试编写REGEX以在Rails中验证用户名

Rails,RSpec单元测试的用户名失败

Rails 4.1用户名和头像不会保存

使用Ruby on Rails Devise Gem向用户名注册

如何在Ruby on Rails上设置用户名验证?

Rails验证用户名中没有空格

Rails 4,Devise-无法从Rails控制台更新用户名

无法在用户模型中访问“用户名”属性(Rails 4-Devise)

Rails:将用户ID保存到数据库,但仅在视图中显示用户名

Devise + Angular + Rails 4:更改已登录用户不验证用户名/密码

Rails 4:Friendly_id gem通过用户名查找用户

Rails:设计:未定义的方法“用户名”无法访问属性

Rails4-如何对用户名进行正则表达式?

Rails / Devise-将用户名传递到Profile Build中

Ruby on Rails:用户名/密码错误?(535身份验证失败)

Rails 4中PostgreSQL服务器的默认用户名/密码是什么?

Rails中的管理员/用户名称空间控制器的功能是什么

Ruby on Rails - 在新页面/控制器上显示用户名

535-5.7.8使用Gmail的Rails Mailer不接受用户名和密码

Rails 5.2:ActiveRecord :: RecordInvalid(声称用户名已被使用,尽管不是)

ruby on rails 匿名化已删除的记录用户名