FLEX,ActionScipript 3.0 正则验证表单
???????? 本文只是给一些初学的朋友看的,? 如果技术比较牛的朋友,欢迎指点..!
???????? 本人在学FLEX过程中经常会遇到一些问题,?? 关于flex的表单验证问题,网上的文章不少!? 大多都是大致介绍了下!? 更多的是 验证字符串长度的(StringValidator),? 验证电话(PhoneNumberValidator),验证日期(DateValidator),和邮件等.? 这些都是很实用的!
????????? 但是本人感觉,还是要有一种更通用的,就是用正则自己写匹配模式的表单验证.
我在网找了不少!?? 很少有说这个的!(也许是我没有找到,呵)? 这里我一下这个的例子.
虽然有几个FormItem? 但是我只写了一个用户名的. 相信如果能看懂的话,其它的也不是问题.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="doalert()">
<mx:Script>
?<![CDATA[
??import mx.validators.RegExpValidator;
??import mx.controls.Alert;
??internal function doalert():void {
???Alert.show(uname.text);
??}
?]]>
</mx:Script>
?<mx:Panel title="用户注册信息" width="359" height="400" x="24" y="37" fontSize="12">
??<mx:Form width="100%" height="100%" horizontalGap="0">
???<mx:FormHeading label="用户资料" width="100%"/>
???<mx:FormItem label="用户名: " width="100%" required="true">
????<mx:TextInput width="100%" id="uname" />
???</mx:FormItem>
???<mx:FormItem label="密码: "? width="100%" required="true">
????<mx:TextInput width="100%" id="pwd" displayAsPassword="true" />
???</mx:FormItem>
???<mx:FormItem label="性别: " width="100%" direction="horizontal">
????<mx:RadioButton groupName="sex" label="男" />
????<mx:RadioButton groupName="sex" label="女" />
???</mx:FormItem>
???<mx:FormItem label="爱好: " width="100%" direction="horizontal">
????<mx:CheckBox label="读书"/>
????<mx:CheckBox label="上网"/>
????<mx:CheckBox label="唱歌" enabled="true"/>
???</mx:FormItem>
???<mx:FormItem label="邮箱 :" width="100%" >
????<mx:TextInput width="100%"/>
???</mx:FormItem>
???<mx:FormItem label="电话 :" width="100%" >
????<mx:TextInput width="100%"/>
???</mx:FormItem>
???<mx:FormItem label="出生年月" width="100%">
????<mx:TextInput width="100%"/>
???</mx:FormItem>
??</mx:Form>
?</mx:Panel>?
?<mx:RegExpValidator source="{uname}" property="text" expression="{'^[a-zA-Z_]{1}[a-zA-Z0-9_]{5,15}$'}"
???noMatchError ="用户名只能是字母,数字,下划线,开头只能是字母和下划线,6-16位. " />
</mx:Application>
上面的source属性和property属性我就不解释了!? 主要就是一个expression和noMatchError,
?expression是我们要用的正则表达式字符串,?注: 因为它是一个字符串,所以我们要对其中的 {?,}, 进行转义..?? 如? {,},???? ...
noMatchError:是出现不匹配情况下提示出来的一个字符串..