验证电子邮件地址。(域名)

时间:2011-12-09 06:23:11

标签: regex flex email-validation

我正在使用EmailValidator进行验证:

<mx:EmailValidator id="Email_Validator"
    source="{txtEmail}"
    property="text" required="false"/>

我的代码是:

var isValidForm:Boolean=true;

    var validatorArr:Array = new Array();
    validatorArr.push(Email_Validator);
    var validatorErrorArray:Array = Validator.validateAll(validatorArr);
    isValidForm = validatorErrorArray.length == 0;
    if(isValidForm)
   {
        //.....
   }

工作正常。但我希望域名应该是“gmail.com”如果其他一些,验证应该返回false ..我怎么能得到这个?
我认为正则表达式很有用..但我不知道在flex中使用相同的表达式吗?...

2 个答案:

答案 0 :(得分:0)

如果您要测试的是&#34; gmail.com&#34;,则根本不需要使用正则表达式。一个简单的

if (txtEmail.text.indexOf ("gmail.com") < 0) doStuff(); 
// index < 0 => address does not contain search string

就够了。

尽管如此,ActionScript 3还是有RegExp类来提供正则表达式功能。请参阅this tutorial

答案 1 :(得分:0)

使用组件

 checkout this 



public class TextInputEmail extends TextInput
{
    private var emailValidator:EmailValidator = new EmailValidator();
    private var validator:ValidationResultEvent;

    public function TextInputEmail()
    {
        super();
        this.emailValidator.source = this;
        this.emailValidator.property = "text";
        this.addEventListener("enter", this.validate);

    }

    private function validate(event:Event):void
    {
        validator = emailValidator.validate();

        if (validator.type == ValidationResultEvent.VALID)
        {
            this.errorString = "";
        } else {
            this.errorString = validator.message;
        }
    }
}

错误字符串在build in Package中。 我希望这能帮助你更好......: - )