正则式是一项非常好的文本处理方式, 它可以很方便的检查文本格式, 搜索文本中的内容, 以及替换文本的内容, 比如通常去除文本的前端空格和后端空格的功能, 使用下面的正则式即可完成:
- /*
* 去除字符串前面的空格和跳格符
*/ - var src:String=" Hello! ";
- trace("\""+src+"\""); //原文本
- trace("\""+src.replace(/^\s*/g,"")+"\""); //去掉前面的空格
- trace("\""+src.replace(/\s*$/g,"")+"\""); //去掉后面的空格
由于个人习惯的原因, 我对AS3的正则式进行了一些封装, 封装之后, 由Regex, RegexOptions, Match和MatchCollection四个类组成, 以下的代码中都用到了这几个类比如检查用户输入的一个文本是否是一个合法的邮箱地址, 可以使用下面的正则式进行检查:
- /*
* 检查文本是否是一个邮箱地址
*/ - var regex:Regex=new Regex("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");
- var email1:String="thor.net@gmail.com";
- var email2:String="thor.net@gmail_com";
- trace("\""+email1+"\""+(regex.isMatch(email1)?"是":"不是")+"邮箱地址");
- trace("\""+email2+"\""+(regex.isMatch(email2)?"是":"不是")+"邮箱地址");
正则式还可以用于提取一段文本中特定的内容, 例如以下代码:
- /*
* 提取文本中的内容
*/ - var srcText:String="name:thor,birthday:1979-10-31";
- regex=new Regex("name:(?P(\\w+))",RegexOptions.IGNORECASE); //忽略大小写
- var match:Match=regex.getMatch(srcText);
- var text:String=match.result("hello, ${name} ^_^");
- trace(text);