2014-10-28 45 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+)*/; 
相关问题