在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");
}
}
}
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");
}
}
}