我正在使用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中使用相同的表达式吗?...
答案 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中。 我希望这能帮助你更好......: - )