有没有人知道Ruby中的正则表达式是验证电子邮件地址是否采用适当的RFC 2822电子邮件格式?
我想做的是:
string.match(RFC_2822_REGEX)
其中“RFC_2822_REGEX”是正则表达式,用于验证我的字符串是否为有效的RFC 2882格式。
答案 0 :(得分:12)
您可以使用mail gem根据RFC2822解析任何字符串,如下所示:
def valid_email( value )
begin
return false if value == ''
parsed = Mail::Address.new( value )
return parsed.address == value && parsed.local != parsed.address
rescue Mail::Field::ParseError
return false
end
end
检查是否提供了电子邮件,即返回false
表示空地址,并检查该地址是否包含域名。
答案 1 :(得分:2)
根据this类似问题的答案,您可能需要重新考虑使用正则表达式。
答案 2 :(得分:2)
http://theshed.hezmatt.org/email-address-validator
是否基于RFC2822规则进行正则表达式验证(它也是正则表达式的怪物),它还可以检查该域在DNS中是否有效(具有MX或A记录),并执行测试传递以验证MX域名将接受给定地址的消息。最后两项检查是可选的。
答案 3 :(得分:1)
尝试this: