As2lib に正規表現のパッケージ org.as2lib.regexp があった。0.9.3 から入ったのかな。正規表現を使うなら Joey Lott 版の RegExp クラスでもいいんだけど、ソースを見たら String の prototype を書き換えてるしなあ……。
というわけで、As2lib にてメールアドレスの正当性チェックを行ってみた。Pattern インスタンスと Matcher インスタンスを作成し、Matcher.matches で Boolean が返ってくる。グループのマッチ文字列は Matcher.getGroup で得られる。Matcher には置換メソッドもあるけど、使い方がよく解らない……。
import org.as2lib.regexp.*; var p:Pattern = new Pattern("^([\\w\\d_\\.\\-]+)@([\\w\\d_\\.\\-]+[\\.][\\w]{2,3})$"); var s:String = "hoge_2006@example.com"; var m:Matcher = new Matcher(p, s); trace(m.matches()); //true trace(m.getGroup(1)); //hoge_2006 trace(m.getGroup(2)); //example.com
便利!マッチングにかかる時間は Pentium 4 の 1.8GHz で 10ms 前後。長文には向かないだろうけど、フォームの入力チェックくらいには使えそう。