如何在动作脚本3中检查给定的电子邮件地址是否无效?

时间:2014-10-28 07:04:10

标签: regex actionscript-3 flex flex4 email-validation

我需要检查动作脚本中给定的电子邮件地址是否无效。以下是我提出的代码/正则表达式。

private function isEmailInvalid(email:String):Boolean
            {
                var pattern:RegExp = /(\w|[_.\-])+@((\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

有没有人有更好的方法呢?

Folowing是我使用的经过测试的有效电子邮件(上面的函数应该返回“false”):

firstname.lastname@domain.com 
firstname+lastname@domain.com 
email@domain.co.jp 

Folowing是无效的(因此函数应该为这些返回“true”):

email@domain@domain.com
.email@domain.com
email..email@domain.com
plainaddress, email@domain..com

2 个答案:

答案 0 :(得分:0)

最后删除+,你必须放置锚点。

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

简化版,

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

DEMO

答案 1 :(得分:0)

试试这个RegExp:

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