当前位置: 代码迷 >> Web前端 >> 运用格式器和验证器
  详细解决方案

运用格式器和验证器

热度:102   发布时间:2012-11-21 08:23:25.0
使用格式器和验证器
   在Flex框架下,可以用验证器在客户端检查数据而不用把数据提交到服务器,此种做法减少了客户端和服务器之间的数据传输量,所以提升了应用程序的性能。当然,最好由服务器执行某些安全数据的验证... ...

1、 介绍格式器和验证器
   所有的验证器都是Validator的派生类,Flex框架包括下列可用的验证器具:
   CreditCardValidator
   DateValidator
   EmailValidator
   NumberValidator
   PhoneNumberValidator
   SocialSecurityValidator
   StringValidator
   ZipCodeValidator
  你可能经常会需要执行内置验证器能力所不及的数据验证,这时可以使用Flex中Validator类的功能来构建自定义验证器。

    Flex包括如下一些可用的格式器:
   mx.formatters.CurrencyFormatter;
   mx.formatters.DateFormatter
   mx.formatters.NumberFormatter
   mx.formatters.PhoneFomatter
   mx.formatters.ZipCodeFormatter

2、 使用格式器:
A/
   <mx:CurrencyFormatter id="currFormat"
       currencySymbol="$" precision="2"/>

   <mx:Label id="price"
       text = "{currFormat.format(xxx)}"/>

B/
  <mx:DateFormatter id="dateFormat"/>
  <mx:Label text="{dateFormat.format(xxx)}"   formatString="YYYY/MM/DD"/>


3、 使用验证器
   <mx:ZipCodeValidator id="zipV" source="xxx"
   property="text" domain="US or Canada ... "/>

  <mx:TextInput id="xxx"/>

  判断验证效果时可以使用ValidationResultEvent, 判断其type属性是否为VALID
  如:
  private var vResult:ValidationResultEvent;
  if(vResult.type==ValidationResultEvent.VALID){xxxx;}


4、 使用正则表达式来验证数据
   正则表达式是老熟人了, 举出我使用过的两种方式
   注意: .在正则表达式中表示一个合法字符, 双斜杠\\用于表示转义
  用法一:
  var pattern:RegExp = new RegExp(".\\.[Gg][Ii][Ff]");
  if(xxx.imageName.search(pattern)!=-1){//表示匹配成功}

用法二:
  var pattern:RegExp = /^.\.[Gg][Ii][Ff]$/;
  var result:Object = pattern.exec(xxx.imageName);
  if(result!=null){//表示匹配成功}
 

5、 构建自定义验证器类
  使用验证器类,可以为用户显示出错的位置,同时显示自定义的错误信息。Flex框架提供了扩展验证器类和添加程序功能的能力。

  示例:

  public class AddressValidator extends Validator{
    private var results:Array;
   
    public AddressValidator(){
      super();
    }
  }

  override protected function doValidation(value:Object):Array{
          results = [];
          results = super.doValidator(value);
          if(value!=null){
             var pattern:RegExp = new RegExp("xxx");
           if(value.serach(pattern!=-1){
              results.push(new ValidationResult(true,null,"xxx","xxx");
    }
   }
  }
  
   
  相关解决方案