[英]Rails 3 - Help with a Email Validation Regex
如果提供的電子郵件域與INVALID_EMAILs不匹配,則以下REGEX似乎會無限期運行並鎖定rails服務器(我的本地環境)。
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)
您使這種方式過於復雜。 這應該足夠了:
def valid_email_domain(email_address)
!(email_address =~ /#{INVALID_EMAILS.map{|a| Regexp.quote(a)}.join("|")}/)
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.