• ベストアンサー

入力メールアドレスの妥当性チェック

フォームから入力された、 メールアドレスの妥当性のチェックを行いたいのですが、 「日本語であるか否か」のチェックを行うことはできないのでしょうか? アルファベット/数字だけのチェックであれば問題ないのですが、 メールには _.- などの文字も含まれているので、 メールアドレスとして妥当かどうか、正確なチェック方法、 正規表現方法はないものかどうか、教えてください。 他のサンプルソースで拾った if ( ereg("^[^@]+@[^.]+\..+", $mail) ) { $status = 1; //メールアドレスっぽい } else { $status = 0; //メールアドレスではなさそう } という記述ですと、日本語、たとえば あいうえお@mail.goo.ne.jp でもOKになってしまいます。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.1

私がかなり昔に書いた判定式です。 参考まで。 function is_mailaddr( $stream ) { if( preg_match( '/^[_a-zA-Z0-9-]+([\.\+_a-zA-Z0-9-]+)*@[a-zA-Z0-9]([_a-zA-Z0-9-])*(\.[_a-zA-Z0-9-]+)*(\.[_a-zA-Z0-9-]{2,})+$/i', $stream ) ) { return true; } else { return false; } }

Koji001
質問者

お礼

ありがとうございます。 実際に使わせていただいても構いませんでしょうか。 よろしくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.3

>実際に使わせていただいても構いませんでしょうか。 ご自由にお使いください :-)

Koji001
質問者

お礼

お礼が遅れてしまいました。 ありがとうございます。 使わせていただきます。

すると、全ての回答が全文表示されます。
noname#24096
noname#24096
回答No.2

>正確なチェック方法 「正確な」=RFCに規定されている という意味でよいのでしょうか? (厳密な正規表現となると大変なことになりますが…) 参考 http://q.hatena.ne.jp/1130649169 また上記URLのリンク先 http://www.din.or.jp/~ohzaki/perl.htm#Mail にも記載がありますが、一部の携帯で使えてしまう irregular.@xxxxxx.ne.jp の@の前の「.」はRFCに適合しない不正なアドレスになります。 また「メールアドレスが正しいか否か」という意味では このような考え方もあります。 http://neta.ywcafe.net/000407.html

Koji001
質問者

お礼

ありがとうございます。 参考にさせていただきます

すると、全ての回答が全文表示されます。

関連するQ&A