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

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

如果用过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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航