メールアドレスで使用できない文字の種類がわかるサイトを教えてください。
http://q.hatena.ne.jp/1133015187
3 回答者:hamaran 2005-11-27 00:12:49 満足! 20ポイント
http://www.puni.net/~mimori/rfc/rfc2822.txt
メールアドレスに使用できる文字列は基本的にRFC2822で規定されています。
そこには、携帯電話用アドレスやパソコン用アドレスといった違いはありません。
で、「使用できない文字」ではなく「使用できる文字」になりますが、
↑のリンク先がRFC2822の和訳文で、よく読み解くと書いてあります。
具体的には、
・大文字小文字のアルファベット
・数字
・!#$%&`+-*/’^{}_ ←記号(全部抜き出したつもりだけど自信ナシです)
・そして .” (ドットですね)
実際にはRFC2821もかかわってきて、”.”(ドット)は
使用していいものの、連続していてはいけないし、
ローカル部(@の左側)の始めや終わりにドットがきてもいけません。
実際にどれがつかえてどれがダメなのかは、ローカルの規定によるので、
各プロバイダや携帯電話会社などによって異なります。
場合によってはRFCに準拠していないものを認めている所もあります。
たとえばDoCoMoでは、ドットが連続していてもOKだったかと思います。
うわ、エスケープすればローカル部に@も使えるんだね…。CSV並のめんどくささ。ちゃんとしたパーサー(文脈自由言語だっけ?)でやらないと無理なのか。
メールアドレスに一致する正規表現は「ありません」。
$mail_address =~ /[a-zA-Z0-9_-]+\@[a-zA-Z0-9_-]+\.\w+/;
じゃ駄目なの?という方もいらっしゃるかもしれませんが、
以下のアドレスを見てください。これらは実在する(もう削
除しましたが)アドレスです。
canada(@home)@tt.rim.or.jp
"me@home"@digital-canvas.com
Tom&Jerry/$100.00@digital-canvas.com
canada@[192.168.0.1]
バリデーションする場合は、「メールアドレスっぽいもの ⊃ メールアドレス」 になるようにすればいいかな。