3

为了通过在文本字段(多个电子邮件地址)中提供他们的邮件地址来邀请新用户,我需要验证给定的电子邮件地址格式并需要显示正确的错误消息。这里我使用每个电子邮件地址之间的空格。(例如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
4

1 回答 1

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 (我不知道你是否需要那么多尽管)。

有关验证电子邮件地址的更多正则表达式(当然比我的上一个更简单),请看这里:使用正则表达式验证电子邮件地址

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

于 2012-10-10T14:55:24.963 回答