Kie*_*yes 1 ruby ruby-on-rails
例如:逗号分隔在单个文本字段中:mail1 @ domain.com,mail2 @ someotherdomain,...
您可以使用TMail :: Address模块验证电子邮件,如下所示.可以使用该validate方法添加自定义验证.
validate :check_email_addresses
def check_email_addresses
email_addresses.split(/,\s*/).each do |email|
TMail::Address.parse(email)
end
rescue TMail::SyntaxError
errors.add(:email_addresses, "are not valid")
end
Run Code Online (Sandbox Code Playgroud)
更新: TMail :: Address模块似乎对被认为是有效的电子邮件地址过于宽松(请参阅下面的注释),因此您可以使用正则表达式.
validate :check_email_addresses
def check_email_addresses
email_addresses.split(/,\s*/).each do |email|
unless email =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
errors.add(:email_addresses, "are invalid due to #{email}")
end
end
end
Run Code Online (Sandbox Code Playgroud)
有多种正则表达式解决方案可用于验证电子邮件地址.有关详情,请参阅此页面.