2011-12-09 11 views
0

:。検証メールアドレス(ドメイン)私は検証のため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) 
    { 
     //..... 
    } 

。しかし、他のいくつかの検証がfalseを返すべきならば、ドメインは "gmail.com"でなければなりません..どうすればこの問題を解決できますか?
正規表現は便利だと思いますが、フレックスで同じものを使うのは知りません...

答えて

0

"gmail.com"だけをテストしているのであれば、正規表現を使う必要はありませんまったく。単純

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

で十分でしょう。

しかし、ActionScript 3では、正規表現機能を提供するために、RegExpクラスが用意されています。 this tutorialを参照してください。

+0

エラーが発生しました:-1061:静的型spark.components:TextInput.with –

+1

の参照を使用して、未定義のメソッドindexOfを呼び出す可能性あり申し訳ありませんあなたのコードから、txtEmailはあなたの変数の名前です。 TextInputの名前であれば、 'txtEmail.text'に置き換える必要があります。 – weltraumpirat

+0

私はそれを持って..ありがとう... –

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; 
     } 
    } 
} 

エラー文字列は、パッケージでビルドしています。

+0

Ok.Thankの情報..しかし、私の仕事はドメインのためにテストされていた "gmail.com"またはそうではないと答えたweltraumpirat :) –

関連する問題