0
以下REGEX如果提供的电子邮件域不匹配INVALID_EMAILs似乎无限期地运行并锁定rails服务器(我的本地环境)。Rails 3 - 帮助电子邮件验证正则表达式
INVALID_EMAILS = %w(gmail.com googlemail.com yahoo.com ymail.com rocketmail.com hotmail.com facebook.com)
def valid_email_domain(emailAddy)
reg = Regexp.new /#{User::INVALID_EMAILS.map{|a| Regexp.quote(a)}.join("|")}/
if emailAddy.scan(reg).size == 0
return true
else
return false
end
end
任何可以提供反馈的正则表达式专家?由于
更新:
控制器:
def create
@user = User.new
# User EmailVeracity to validate the email address
email = EmailVeracity::Address.new(params[:user][:email])
Rails.logger.info 'Email Check Result'
Rails.logger.info valid_email_domain(params[:user][:email])
Rails.logger.info 'Email Check Result'
if email.valid?
Rails.logger.info 'Sign this email up'
else
Rails.logger.info 'Bad email, dont touch that'
end
respond_to do |format|
format.html
format.js
end
end
protected
def valid_email_domain(emailAddy)
!(emailAddy =~ /#{User::INVALID_EMAILS.map{|a| Regexp.quote(a)}.join("|")}/)
end
用户模型:
INVALID_EMAILS = %w(gmail.com googlemail.com yahoo.com ymail.com rocketmail.com hotmail.com facebook.com)
谢谢,但正确的错误,当我有一封电子邮件匹配一个无效的电子邮件,它工作正常,并返回false。当我的电子邮件与任何invalid_emails rails不匹配时,挂起,不响应,卡住。 – AnApprentice 2011-01-21 23:37:36