最近项目中有部分字符串进行校验,于是它提出了校验要求(由中文、英文、数字组成,长度在20个字以内,不能含有特殊字符)。
看要求用正则表达式进行校验可能比较简单,以前用过js、java里的正则表达式,as还没用过。上网搜搜,都是些邮箱、电话号码啥的,没有现成的只能先看看as3的正则表达式档(见文章末尾)自己写个,反正又不是很复杂。文档上说:正则表达式可能非常复杂,且不同的编程环境实现正则表达式的方式也不同,可能有许多细微差别。看起来很吓人,其实是提醒你别以为以前用过其他语言的正则表达式就不看本文档了。
1.正则表达式实例创建方式2种:
var pattern1:RegExp = /bob/i;
var pattern2:RegExp = new RegExp("bob", "i");
意思是忽略大小写匹配bob
2.在网上查到了匹配中文表达式[\u4e00-\u9fa5],通过文档得知匹配字母、数字表达式分别为[0-9]、[a-z],写个表达式测试下:
var pattern1:RegExp = /[0-9a-z\u4e00-\u9fa5]/i;
意思是忽略大小写匹配一个数字或字母或汉字。
3.我们的要求是只能由数字、字母、汉字组成,不能包含其他特殊字符,换句话说指标名的每一个字都该与第二个表达式匹配,于是得出了下面的表达式:
var pattern1:RegExp = /[0-9a-z\u4e00-\u9fa5]{20}/i;
意思是忽略大小写匹配一个数字或字母或汉字20次,其中20是指标名的长度,上面这种创建方式好像不能满足动态的指标名,用另外一种创建方式就可以了。
var regStr:String = "[0-9a-z\u4e00-\u9fa5]{" + 20 + "}";
var pattern1:RegExp = new RegExp(regStr, "i");
if(pattern1.test("指标名")){
//TODO
}else{
//提示校验失败
}
http://www.cnblogs.com/guiliangfeng/archive/2009/04/13/1434696.html