ActionScript使用正则表达式示例
程序员文章站
2023-03-29 14:26:08
正则表达式在java,js,ActionScript以及其他开发语言中都较为常见,基本来说ActionScript中的正则和java里面的是完全一致的,下面以一个实例为大家详细介绍下具体的使用... 13-07-02...
正则表达式在java,js,actionscript以及其他开发语言中都较为常见,也是判断数据是否符合标准的常用手段,基本来说actionscript中的正则和java里面的是完全一致的,我自己把java的正则做了整理,如下所示
\\ 表示反斜线(\)字符
\t 表示制表符
\n 表示换行
[abc] 字符a,b或c
[^abc] 除a,b,c之外的任意字符
[a-za-z0-9] 表示由字母,数字组成
\d 表示数字
\d 表示非数字
\w 表示字母、数字、下划线
\w 表示非字母、数字、下划线
\s 表示空白字符(换行、空格等)
\s 表示非空白字符
^ 表示行的开头
$ 表示行的结尾
上面是常用的正则规范,下面则是数量表示(x表示一组规范)
x{n} 必须出现n次
x{n,} 必须出现n次以上
x{n,m} 必须出现n~m次
x? 可以出现0次或1次
x* 可以出现0次,1次或多次
x+ 可以出现1次或多次
至于逻辑运算符我就不贴出来了,下面是我测试用的actionscript
<?xml version="1.0" encoding="utf-8"?>
<s:application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minwidth="955" minheight="600">
<fx:declarations>
<!-- place non-visual elements (e.g., services, value objects) here -->
</fx:declarations>
<fx:script>
<![cdata[
import mx.controls.alert;
public function check(event:event):void{
var name:string=this.username.text;
var password:string=this.password.text;
var birthday:string=this.birthday.text;
var reg1:string=this.reg1.text;
//匹配日期
var pattern:regexp=new regexp("\\d{4}-\\d{2}-\\d{2}");
var pattern2:regexp=new regexp("\\w{4}");
//匹配汉字
var pattern3:regexp=new regexp("^[a-za-z0-9]+$");
//匹配汉字
var pattern4:regexp=new regexp("[\u4e00-\u9fa5]");
//匹配邮箱
var pattern5:regexp=new regexp("^\\w+@\\w+\\.\\w+$");
// if(pattern.test(birthday)){
// alert.show("邮箱格式正确");
// }
if(pattern4.test(reg1)){
alert.show("格式正确");
}else{
alert.show("格式有误");
}
}
]]>
</fx:script>
<s:label x="136" y="42" text="用户名" />
<s:textinput x="180" y="42" id="username"/>
<s:label x="148" y="103" text="密码"/>
<s:textinput x="180" y="93" id="password"/>
<s:label x="149" y="146" text="生日" />
<s:textinput x="180" y="135" id="birthday" text="1989-12-25"/>
<s:label x="124" y="193" text="测试字符" />
<s:textinput x="180" y="183" id="reg1" />
<s:button x="180" y="232" label="登录" click="check(event)"/>
</s:application>
\\ 表示反斜线(\)字符
\t 表示制表符
\n 表示换行
[abc] 字符a,b或c
[^abc] 除a,b,c之外的任意字符
[a-za-z0-9] 表示由字母,数字组成
\d 表示数字
\d 表示非数字
\w 表示字母、数字、下划线
\w 表示非字母、数字、下划线
\s 表示空白字符(换行、空格等)
\s 表示非空白字符
^ 表示行的开头
$ 表示行的结尾
上面是常用的正则规范,下面则是数量表示(x表示一组规范)
x{n} 必须出现n次
x{n,} 必须出现n次以上
x{n,m} 必须出现n~m次
x? 可以出现0次或1次
x* 可以出现0次,1次或多次
x+ 可以出现1次或多次
至于逻辑运算符我就不贴出来了,下面是我测试用的actionscript
复制代码
代码如下:<?xml version="1.0" encoding="utf-8"?>
<s:application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minwidth="955" minheight="600">
<fx:declarations>
<!-- place non-visual elements (e.g., services, value objects) here -->
</fx:declarations>
<fx:script>
<![cdata[
import mx.controls.alert;
public function check(event:event):void{
var name:string=this.username.text;
var password:string=this.password.text;
var birthday:string=this.birthday.text;
var reg1:string=this.reg1.text;
//匹配日期
var pattern:regexp=new regexp("\\d{4}-\\d{2}-\\d{2}");
var pattern2:regexp=new regexp("\\w{4}");
//匹配汉字
var pattern3:regexp=new regexp("^[a-za-z0-9]+$");
//匹配汉字
var pattern4:regexp=new regexp("[\u4e00-\u9fa5]");
//匹配邮箱
var pattern5:regexp=new regexp("^\\w+@\\w+\\.\\w+$");
// if(pattern.test(birthday)){
// alert.show("邮箱格式正确");
// }
if(pattern4.test(reg1)){
alert.show("格式正确");
}else{
alert.show("格式有误");
}
}
]]>
</fx:script>
<s:label x="136" y="42" text="用户名" />
<s:textinput x="180" y="42" id="username"/>
<s:label x="148" y="103" text="密码"/>
<s:textinput x="180" y="93" id="password"/>
<s:label x="149" y="146" text="生日" />
<s:textinput x="180" y="135" id="birthday" text="1989-12-25"/>
<s:label x="124" y="193" text="测试字符" />
<s:textinput x="180" y="183" id="reg1" />
<s:button x="180" y="232" label="登录" click="check(event)"/>
</s:application>