2012-02-16 75 views
1

我需要驗證電子郵件我試過以下表達式正則表達式在Ruby中的電子郵件?

(/\b[A-Z0-9._%az-][email protected](?:[A-Z0-9a-z-]+。 )+ [A-Za-z] {2,4} \ z /)

但是,如果有人給xyx @ domain.com @ domain1.com這樣的電子郵件發送錯誤,那麼這也是一個有效的電子郵件。請幫助我在ruby中獲得電子郵件的確切正則表達式。

在此先感謝。

+0

這是一個額外的字段,我們需要手動驗證。 – apr 2012-02-16 06:12:21

+0

[有效的電子郵件地址正則表達式?]的可能的重複?(http://stackoverflow.com/questions/703060/valid-email-address-regular-expression) – 2012-02-16 06:31:34

+1

@prasvin Rails不會做電子郵件驗證?如果確實如此,請發佈文檔鏈接。 – fabspro 2013-02-27 06:53:05

回答

1

可以使用mail寶石根據RFC2822像這樣來解析任何字符串:

def valid_email(value) 
    begin 
    value return false if value == '' 
    parsed = Mail::Address.new(value) 
    return parsed.address == value && parsed.local != parsed.address 
    rescue Mail::Field::ParseError 
    return false 
    end 
end 

如果提供的電子郵件這種檢查,即對空地址返回false,並且還檢查該地址包含一個域。

郵件寶石已包含在Rails中,因此您可以在應用程序的任何位置使用上面的代碼。

+0

謝謝你的回答........絕對嘗試 – apr 2012-02-16 06:29:38

+0

你知道任何正則表達式爲同一目的嗎? – apr 2012-02-16 06:30:21

+0

郵件gem實際上根據RFC解析郵件,並且相當嚴格。如果你只需要做一些基本的格式檢查,你可以使用Authlogic中使用的正則表達式gem https://github.com/binarylogic/authlogic/blob/master/lib/authlogic/regex.rb – Wolfgang 2012-02-16 17:19:54

相關問題