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