验证多个电子邮件地址

时间:2012-09-07 08:59:21

标签: ruby-on-rails ruby

为了通过在文本字段(多文件电子邮件地址)中提供邮件地址来邀请新用户,我需要验证给定的电子邮件地址格式并需要显示正确的错误消息。我在使用每封电子邮件之间的空格地址。(例如 useremail@gmail.com useremail2@yahoo.com )请指导我。

1)如何验证用户电子邮件地址格式?。

2)如何检查用户是否在两个电子邮件地址之间没有使用空格?

3)建议一些最佳方法。

我正在使用rails(2.3.X和ruby 1.8.7)

用户控制器

def invite_users
  if request.get?
    #render invite_users.html.erb
  elsif request.post?
    if !params[:email_ids].blank? && !params[:message].blank?
      @email_ids = params[:email_ids].split(/ |, |,/)
      @message = params[:message]
      @inviting_users = @email_ids.count
      @inviting_users.times do
        @all_emails = []
        @all_emails = @email_ids.shift
        activation_code = Digest::SHA1.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join)
        UserNotifier.deliver_invite_users(@all_emails, @message,activation_code, current_company)
        end
     else
       flash[:notice] = "Please fill all the fields"
     end
  end
end

1 个答案:

答案 0 :(得分:2)

1)您可以使用简单的正则表达式来检查电子邮件字段的值。有许多正则表达式可以起作用,从最宽松的到最复杂的。人们通常倾向于使用这样的东西:

unless email =~ /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/
   puts "Your email address does not appear to be valid")

这个正则表达式可能会传递一些无效的电子邮件地址(只是非常非常棘手,所以基本上你可以认为这个正则表达式在99.99%的时间内已经足够了)。如果你真的想要(几乎)无瑕疵的检查,你可以考虑这个:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html(我不知道你是否需要这么多)。

要获得更多正则表达式来验证电子邮件地址(当然比我上一篇更简单),请查看此处:Using a regular expression to validate an email address

2)只需strip()输入两个电子邮件地址的字段。