2017-04-19 156 views
0

我有一个简单的CLI,像:如何处理CLI错误

p 'Enter email value' 
params[:email] = gets.chomp 

,我想处理电子邮件验证,如果邮件是无效然后重新运行一个提示。

我有一个验证电子邮件的方法,简单地返回true或false,是这样的:

p 'Enter email value' 
params[:email] = gets.chomp 
if email invalid 
    'error- invalid email' 

,并再次运行

p 'Enter email value' 
params[:email] = gets.chomp 

我该怎么办呢?

+0

询问时请使用正确的大写和语法。 SO不是一个讨论列表,它是一个在线参考书,语法很重要。 –

+0

您是否想要根据RFC规则确定电子邮件地址是否有效,或仅确定它是否为可交付地址?第一个模式非常不平凡。第二种方法最好是通过尝试发送电子邮件到该地址来请求回复。 http://stackoverflow.com/a/201378/128421将有所帮助。 –

回答

0

你可以用Regular Expressions来做到这一点。

为了验证电子邮件是否是一个有效的或没有,你可以使用正则表达式,像这样:

def validate_email 
    VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i 
    if email =~ VALID_EMAIL_REGEX 
    # Do someting here 
    else 
    validate_email 
    end 
end 
+0

这个简单的正则表达式不会开始处理全部有效的电子邮件地址。 –

+0

是的,我知道,只是用它作为例子。他甚至可以检查MX记录中的电子邮件地址。 –