2017-04-19 154 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記錄中的電子郵件地址。 –