2014-10-28 11 views
-1

我需要檢查給定的電子郵件地址在操作腳本中是否無效。以下是我想出的代碼/正則表達式。如何在動作腳本3中檢查給定的電子郵件地址是否無效?

private function isEmailInvalid(email:String):Boolean 
      { 
       var pattern:RegExp = /(\w|[_.\-])[email protected]((\w|-)+\.)+\w{2,4}+/; 
       var result:Object = pattern.exec(email); 
       if(result == null) { 
        return true; 
       } 
       return false; 
      } 

但好像上面的代碼中並不包括所有的測試用例以下鏈接: http://blogs.msdn.com/b/testing123/archive/2009/02/05/email-address-test-cases.aspx

有沒有人有更好的這樣的方式?

如下因素是測試有效的電子郵件,我用(上面的函數應該返回「假」這些):

[email protected] 
[email protected] 
[email protected] 

如下因素是無效的人(因此函數應返回「真」這些):

[email protected]@domain.com 
[email protected] 
[email protected] 
plainaddress, [email protected] 
+1

'\ W {2,4}'是錯誤的匹配TLD。它匹配'___'並且不匹配'博物館'。以下是目前TLD的官方列表:https://data.iana.org/TLD/tlds-alpha-by-domain.txt – Toto 2014-10-28 08:32:54

+1

請勿使用正則表達式來驗證電子郵件地址。他們總是排除許多完全有效的電子郵件地址,給用戶造成不必要的挫折。 – Brian 2014-10-29 23:17:27

+0

想知道,除了使用RegEx以外,驗證電子郵件地址的最佳方法是什麼? – adobeFlex 2014-10-30 05:39:24

回答

0

最後刪除+,您必須放置錨點。

^(\w|[_.\-])[email protected]((\w|-)+\.)+\w{2,4}$ 

簡體之一,

^[\w_.-][email protected]([\w-]+\.)+\w{2,4}$ 

DEMO

+0

謝謝Avinash。請試試這個,讓你知道。 – adobeFlex 2014-10-28 07:17:47

+0

當然,把你自己的時間.. – 2014-10-28 07:20:29

+0

@AvinashRaj但你有檢查鏈接OP給了?這是一個很長的名單。不知道如何匹配整個 – nu11p01n73R 2014-10-28 07:28:16

0

試試這個正則表達式:

RegExp = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; 
相關問題