通过在文本字段中提供新用户的邮件地址(多个电子邮件地址)来邀请新用户,我需要验证给定的电子邮件地址格式,并需要显示正确的错误消息。这里我使用的是每个电子邮件地址之间的空格。(例如useremail@gmail.comuseremail2@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)您可以使用一个简单的正则表达式来检查电子邮件字段的值。有许多正则表达式可能起作用,从最宽松的到最复杂的。人们通常倾向于使用这样的东西:
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) 只需剥去()输入两个电子邮件地址的字段。