Ruby on rails Ruby中的官方电子邮件验证

Ruby on rails Ruby中的官方电子邮件验证,ruby-on-rails,ruby,regex,email-validation,Ruby On Rails,Ruby,Regex,Email Validation,我只想要官方电子邮件地址,如xyz@company.com注册我的服务,而不是其他通用电子邮件地址,如gmail.com或Yahoo mail.com 是否有ruby gem来实现这种电子邮件验证?如果没有,如何实现这一点?您可以在适当的模型中编写自定义验证,如下所示: 本文的基本思路如下: 创建验证方法,并将其放入名为“validators”的新目录中 # app/validators/email_validator.rb class EmailValidator < ActiveMod

我只想要官方电子邮件地址,如xyz@company.com注册我的服务,而不是其他通用电子邮件地址,如gmail.com或Yahoo mail.com


是否有ruby gem来实现这种电子邮件验证?如果没有,如何实现这一点?

您可以在适当的模型中编写自定义验证,如下所示:

本文的基本思路如下:

创建验证方法,并将其放入名为“validators”的新目录中

# app/validators/email_validator.rb
class EmailValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    unless value =~ /\A([^@\s]+)+@yourdomain.com\z/i
      record.errors[attribute] << (options[:message] || "wrong email address")
    end
  end
end
然后将新验证(电子邮件)添加到相应的模型中:

#MyModel.rb    
validates :my_email_field, email: true

您可以在适当的模型中编写自定义验证,如下所示:

本文的基本思路如下:

创建验证方法,并将其放入名为“validators”的新目录中

# app/validators/email_validator.rb
class EmailValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    unless value =~ /\A([^@\s]+)+@yourdomain.com\z/i
      record.errors[attribute] << (options[:message] || "wrong email address")
    end
  end
end
然后将新验证(电子邮件)添加到相应的模型中:

#MyModel.rb    
validates :my_email_field, email: true

有一个免费的MailboxValidator web服务,您可以在Ruby中执行实时电子邮件地址验证


有一个免费的MailboxValidator web服务,您可以在Ruby中执行实时电子邮件地址验证


只需在
@
和点
符号后添加一个否定的前瞻。比如(来自html5规范)
(?i)[a-z0-9.!$%&'*+/=?^{{124}-]+@(!gmail | yahoo)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])(?:\(!gmail | yahoo)[a-z0 9](?:[a-z0 9-]{0,61}[a-z0 9]代码)在代码后面加上一个负数点,然后再加上一个代码。比如(来自html5规范)
(?i)[a-z0-9.!$%&'*+/=?^{U124}-]+@(!gmail | yahoo)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])(?:\.(!gmail | yahoo)[a-z0 9](?:[a-z0 9-]{0,61}[a-z0 9])