【正規表現】精度の割と高いメールアドレスチェック

正規表現3分間クッキング。

 

本日のメニューは、春らしい正規表現を使ったメアド判定です。

 

まずは材料から。

 

~ ローカル部 ~
 

これは@の左側の部分ですね。
以下のようになっております。

  • 英数字
  • ! # $ % & ' * + - / = ? ^ _ { | } ~
  • .(先頭と末尾以外で使用可能。2個以上連続してはならない)

(携帯電話やdionメールなどは連続ドット、@前ドットがあり得る)
 

~ ドメイン部 ~
 

つづいて@の右側部分になります。

  • 英数字、-(先頭以外で使用可能)から成るサブドメインを”.”でつないだもの

 

前述したように、
中にはRFCのルールを無視したアドレスも存在しますがとりあえずPC用

1.まず先頭から末尾まですべてマッチさせるため^と$を入れます。

/^@$/

 2.次に使用可能文字や連続などを踏まえて……

 

出来たものがこちらになります。

/^[\w!#$%&'*+/=?^_{}\\|~-]+(\.[\w!#$%&'*+/=?^_{}\\|~-]+)*@([\w][\w-]*\.)+[\w][\w-]*$/

 

 

少しでも規則に外れようもんなら拒否するとても辛い味に仕上がりました。

こんなの作るのに3分以上掛ったのは番組の仕様です。

 
 

  

おまけ:

携帯などの連続ドットや@前ドットを許可するならこれ。

/^[\w!#$%&'*+/=?^_{}\\|~-]+([\w!#$%&'*+/=?^_{}\\|~\.-]+)*@([\w][\w-]*\.)+[\w][\w-]*$/

5 Responses to “【正規表現】精度の割と高いメールアドレスチェック”

Leave a Reply

You must be logged in to post a comment.