在FLASH中使用正则表达式验证数据

2009年5月12日星期二

在FLASH中使用正则表达式验证数据

如果用过ASP.NET编写注册页面的人,都会为.NET所提供的验证控件而感到兴奋,它所提供的功能很强大。.NET里面内置了常用的正则表达式,使用起来非常方便。
但是如果在FLASH要完成注册页面的话,里面繁琐的用户名、密码等判断就只有交由我们自己写咯。
好,首先来看看效果:
则表达式的类RegExp.class:哦~太长了,我直接UPLOAD一个附件好了
userName、pwd、id、email、homepage为TextInput组件;
userNameFalse、pwdFalse、idFalse、emailFalse、homepageFalse为出错后作提示作用的MC
关于RegExp.class的使用技巧,\采用双反斜杆\\表示,使用这种形式的时候,可以防止解析程序当作转义序列的开始
具体实现:
vartxtListener:Object=newObject();
txtListener.focusOut=function(evt_obj:Object){
switch(evt_obj.target){
caseuserName:
//由数字、26个英文字母或者下划线组成的字符串
varex=^\\w+$;
varre=newRegExp(ex,g);
trace(userNamechanged);
if(re.test(userName.text)){
userNameFalse._visible=false;
}else{
userNameFalse._visible=true;
}
break;
casepwd:
//由数字、26个英文字母或者下划线组成的字符串
varex=^\\w+$;
varre=newRegExp(ex,i);
trace(re.test(pwd.text));
trace(pwdchanged);
if(re.test(pwd.text)){
pwdFalse._visible=false;
}else{
pwdFalse._visible=true;
}
break;
caseid:
varex=};
varre=newRegExp(ex,i);
trace(re.test(id.text));
trace(idchanged);
if(re.test(id.text)){
idFalse._visible=false;
}else{
idFalse._visible=true;
}
break;
caseemail:
varex=+)*;
varre=newRegExp(ex,i);
trace(re.test(email.text));
trace(emailchanged);
if(re.test(email.text)){
emailFalse._visible=false;
}else{
emailFalse._visible=true;
}
break;
casehomepage:
varex=http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%=]*)?;
varre=newRegExp(ex,i);
trace(re.test(homepage.text));
trace(homepagechanged);
if(re.test(homepage.text)){
homepageFalse._visible=false;
}else{
homepageFalse._visible=true;
}
break;
}
};
//addEventListener
userName.addEventListener(focusOut,txtListener);
pwd.addEventListener(focusOut,txtListener);
id.addEventListener(focusOut,txtListener);
email.addEventListener(focusOut,txtListener);
homepage.addEventListener(focusOut,txtListener);
//////////////////////////////////////////////////
//初始状态下的各错误提示的可视值为false;
userNameFalse._visible=false;
pwdFalse._visible=false;
idFalse._visible=false;
emailFalse._visible=false;
homepageFalse._visible=false;

0 评论:

发表评论