flex 自定义Validator

转载自 http://amberoracle.blog.163.com/blog/static/10598633820097262242474/

 

第一步:写AS类继承mx.validators.Validator ,并导入mx.validators.ValidationResult.
 value中存放需要验证的内容
results数组中存放验证后的结果,如果通过验证,数据为空;如果验证失败,数组中是ValidationResult.对象,内含失败信息。

package utils
{
    imp
ort mx.validators.Validator;       //Validator 类是所有 Flex 验证程序的基类。

    imp ort mx.validators.ValidationResult;

    public class AddressValidator extends Validator
    {
        private var results:Array;
        public function AddressValidator()
        {
            super();
        }
        protected override function doValidation(value:Object):Array{    
  //受保护的方法    protect  ;  doValidation(value:Object):Array  ; 执行此验证程序的验证逻辑,包括验证缺少值或空值是否会导致如 required 属性的值所定义的验证错误。
            results=[];
            results=super.doValidation(value);
            if(value!=null)
            {
                var pattern:RegExp=new RegExp("//d+//x20[A-Za-z]+");
                if(value.search(pattern)==-1){
                    results.push(new ValidationResult(true,null,"notAddress","This is not a valid address"));
                          // 携带的错误信息
                }
            }
            return results;//返回字符串如果为空 就通过验证  如果有内容  那就是验证失败的结果信息
        }
    }
}

第二步:导入FLEX程序
xmlns:u="utils.*"
建立验证器
<u:AddressValidator id="addressV" source="{billingAddress}" property="text" required="true"/>
id  验证器名
source 验证源
property 验证源所在位置的属性名
required 不可为空

第三步:在FLEX程序中导入imp ort mx.events.ValidationResultEvent;
来对验证的结果进行判断
private var vAddressResult:ValidationResultEvent=null;

 需要检验处:
private function process():void{
            vAddressResult=addressV.validate();   //验证器执行validate()方法进行验证
               //validate    ()    方法     
               //public function validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent
               //执行验证并(可选)将结果通知给侦听器。

          
            if(vAddressResult.type==ValidationResultEvent.VALID){ //判断是否通过验证
            var  e:ObjectDataEvent = new ObjectDataEvent("billingInfoReturn",checkoutInfo);
            this.dispatchEvent(e); 
             }
        }


1、正则表达式
//反义
d数字
+多个
.通配符
[A-Za-z]
//x20 空格
2、字符串的search(new RegExp("..."))
3、^匹配字符串的开头。$匹配字符串的结尾。[ 和 ] 定义字符类,字符类定义单个字符可能的匹配.   [ | ] 定义“或者”
                       ///w 对所有单词字符, 包括(A–Z, a–z, 0–9, or _) 进行匹配。注意, 不包括任何非英语的字符,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值