我想写一个电子邮件存档的验证。但有一些不同的方式。
我将允许用户输入两种格式的电子邮件,如“name'[email protected]”和简单的“[email protected]”。所以基本上我想写一个验证,它将检查值中是否存在有效的电子邮件格式。
只需要一个自定义验证来检查输入的电子邮件值中是否存在有效的电子邮件格式。
我的模特看起来像:
class Contact < ActiveRecord::Base
validates :email ,presence: true
validate :email_format
def email_format
??? what to write here ???
end
end
我怎么能写一个验证。
最佳答案
在您的情况下,您需要稍微修改正则表达式。
validates :email, format: { with: /(\A([a-z]*\s*)*\<*([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\>*\Z)/i }
这将匹配以下格式。
[email protected]
Soundar<[email protected]>
Soundar <[email protected]>
soundar<[email protected]>
Soundar Rathinsamy<[email protected]>
Soundar Rathinsamy <[email protected]>
soundar rathinsamy <[email protected]>
如果需要更改,请继续在rubular.com处编辑此正则表达式。