【发布时间】:2014-04-18 16:22:30
【问题描述】:
我知道有很多类似的问题,但我在任何地方都找不到我的案例。
我正在尝试在 Ruby on Rails 用户模型中编写 Full Name RegEx。 它应该验证名字和姓氏是否用一个空格填充。两个名称都应包含至少 2 个字符(例如:Li Ma)。
作为奖励,但不是必需的,我想将空格修剪为一个字符,以防用户输入错误并输入多个空格(例如:Li Ma 将被修剪为 Li Ma) 目前我正在这样验证它(警告:可能不正确):
validates :name,
presence: true,
length: {
maximum: 64,
minimum: 5,
message: 'must be a minimum: 5 letters and a maximum: 64 letters'},
format: {
# Full Name RegEx
with: /[\w\-\']+([\s]+[\w\-\']){1}/
}
这对我有用,但不会检查每个名称的至少 2 个字符(例如:Peter P 现在是正确的)。这也接受多个不好的空格(例如:Peter P)
我知道识别姓名的这个问题非常以文化为中心,它可能不是验证全名的正确方法(可能有些人只有一个字符名称),但目前这是一项要求。
我不想将此字段拆分为 2 个不同的字段名和姓,因为这会使用户界面复杂化。
【问题讨论】:
-
姓氏是否包含多个单词,例如“Van Damme”?
-
我相信它的拼写是“Van Damage”。
-
是的,忘了说。它可能包含超过 2 个单词,但不能少于 2 个
标签: ruby-on-rails regex validation whitespace