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