在Rails中使用Regex表达式验证电子邮件

时间:2014-05-08 07:49:51

标签: ruby-on-rails regex validation email

请参阅,我有以下简单的正则表达式来验证电子邮件值。

^(|(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$

当我运行相同的时候,它有效! http://rubular.com/r/O3EDkx5a8t

请参阅,我有一个包含NameEmail列的Excel文件。导入时我需要验证电子邮件ID,否则从导入中跳过这些行。我已完成导入以及除此验证之外的所有内容。

现在,如果我在row["Email"]变量中有电子邮件值,则假设' abc@gmail.com'如何验证并确认电子邮件格式正确?

我已经看到使用match进行字符串匹配的scanRegex方法。但是,我不知道如何适应这种情况。验证时,如果是正确的电子邮件,则应返回true,否则应返回false。请帮助:)

1 个答案:

答案 0 :(得分:1)

是的,我找到了答案:

2.0.0-p247 :022 > "%_@gmail.com" =~ /^(|(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$/
 => nil 
2.0.0-p247 :023 > "a@gmail.com" =~ /^(|(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$/
 => 0 

Email合适时,它会返回0,否则会返回nil

谢谢:)