使用正则表达式的 Ruby 电子邮件验证

标签 ruby regex validation email

我有一大堆正在浏览的电子邮件。很多邮件都有拼写错误。我正在尝试构建一个字符串来检查有效的电子邮件。

这就是我的正则表达式。

def is_a_valid_email?(email)
  (email =~ /^(([A-Za-z0-9]*\.+*_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\+)|([A-Za-z0-9]+\+))*[A-Z‌​a-z0-9]+@{1}((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,4}$/i)
end

如果电子邮件为下划线且只有一个句点,则通过。我有很多电子邮件的名称本身有不止一个句点。我如何在正则表达式中检查它。

hello.me_1@email.com # <~~ valid
foo.bar#gmail.co.uk # <~~~ not valid
f.o.o.b.a.r@gmail.com # <~~~valid 
f...bar@gmail.com # <~~ not valid 
get_at_m.e@gmail  #<~~ valid

有人可以帮我重写我的正则表达式吗?

最佳答案

这至少从 2.2.1 开始就内置到标准库中

URI::MailTo::EMAIL_REGEXP

关于使用正则表达式的 Ruby 电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993545/

相关文章:

ruby-on-rails - 找不到 id=sign_out 的用户

ruby-on-rails - 如何为模型地理编码设置 VCR 全局磁带?

IP 地址的 Ruby 正则表达式

javascript - "password must contain at least one non-alphanumeric character"的正则表达式

regex - R正则表达式交换文本部分

validation - 如何更改所需 HTML 表单字段的 WebKit 错误消息

wpf - 如何在 WPF 程序中使用 IDataErrorInfo.Error?

ruby-on-rails - Stubing 费加罗与 rspec

php - 尝试验证名称字段以确保它全部是字母字符或连字符或撇号

jquery - 当 ControlToValidate 在客户端中不可见时禁用RequiredFieldValidator