メールアドレスが有効かのチェック - PHPプロ!Q&A掲示板

789

  • 0P

メールアドレスが有効かのチェック

質問日時 / 2007年11月27日 17:01    回答数 / 1件

Questioner:  fainalanswer  このエントリーをはてなブックマークに追加 

キーワード / メールアドレス    比較    正規表現   

ご助力お願いします。
PEARを使わずにメールアドレスが有効なものかどうかを正規表現でチェックし、有効でなければエラー表示をしたいのですが、よくわかりません。
ここのサイトのマニュアルをお手本に直してみたのですが、多分間違っていると思います。
正規表現でなくとも、他に何かいい方法があれば教えてください。

  1. $date1 = arrey($_POST($name1),$_POST($mail1),$_POST($kibou1));
  2.  
  3. //中間省略
  4.  
  5. $check1 = '/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i';
  6. if( ! preg_match( $check1, $date1[1] ){
  7. print "有効なメールアドレスではありません";
  8. }

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01weekendphp私は、いつも下記パターンでやってます。 $check1

回答一覧

並び替え:

A01
answererweekendphp [11月27日 17:25] (最終編集:11月27日 17:27)

私は、いつも下記パターンでやってます。

$check1 = '/^[-0-9a-z_\\.]+@[-0-9a-z_\\.]+\\.[a-z][a-z]+$/iD';

「.」をマッチさせたい場合、\.だと、エスケープされて、
結局pregパターンには「.」が渡ってしまうので、「\.」を渡したい場合は、
「\\.」とする必要があると思います。

説明が下手ですけど。。。

エスケープの関係でわかりづらい場合は、preg_quoteなんかを使った方が
確実でいいかもしれません。

エスケープについては、下記が参考になるかもしれません。
http://www.phppro.jp/qa/detail.php?id=486

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
負荷時のmysql_connect()エラー
 このエントリーをはてなブックマークに追加 
A
これはPHPというよりOSまたはMySQLのコミュニティで質問されたほうがいいと思います。 ぱっと思いついた範囲で記すと MySQL等のDBに「ある時点において同時に接続可能なクライアントの最大数」に制限があるよう...

>>続きを読む

今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)