![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
<?php
$mail = "php_programming@shuwasystem.co.jp";
if (!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$",$mail))
echo ("メールアドレスが誤っています!");
?>
上記の中、\\-とか\\.などの意味がわかりません。\はエスケープなら
なぜ二つ並べるのでしょうか。
そして、|の意味もわかりません。
お分かりの方、教えていただければ大変うれしいです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
その正規表現中の\\-と\\.は-と.にヒットさせるものです。
なぜ2つなのかは不明です。(-はそのままで良かったと
思うのですが)
ちなみに私は
if (!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $mail)) {
//エラー、E-mailに全角文字や、メールアドレスとして不正な文字が入っている?
}
という正規表現を使ってます。
やはり、なぜ\を二つ並べる?ってあまりこだわらないことにします。
そういうふうに使うんですね。
ご紹介いただいたソースはすごくいいと思います。
参考にさせていただきますね。
この度はご指導いただき、どうもありがとうございました。
No.1
- 回答日時:
まだ勉強中なので分かる範囲で。
|は論理和、つまり英語のorの意味ですね。
\¥はなぜ繰り返しなんでしょうね?私も疑問です。
PHPのeregiについてはちょっと分かりませんが、
分かる範囲で訳しますと、
$mailが
(1)(小文字のaからzと0から9と_または-または.の一回以上の繰り返し)
(2)@
(3)(小文字のaからzと0から9と_または-の一回以上の繰り返し)に.を付けたものの一回以上の繰り返し
(4)小文字のaからzの2回以上4回以下の繰り返し
の条件満たしているかeregiで調べて偽ならエラー表示。
ということだと思います。
でもこれだと、__--..@abc.co.jpでもエラーにならないかも・・・。
少々怪しいので、正規表現の達人による補足回答を待ちましょう。
|ってorの意味ですね。。。覚えてはいたと思いますが、
まったく別物に見えてしまいました。
\はそうやって二つ並べて使うって風に理解しておくしかないでしょうか。。。
この度はご指導いただきまして
どうもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでのフォーム送信・・・・
-
sendmail.phpとthanks.php
-
phpでのメール送信
-
mb_send_mailについて
-
mailやmb_send_mail関数で、本...
-
PEAR::Mailを使ったメール本文...
-
さくらサーバーにて、phpからメ...
-
cronでメールを送信すると文字...
-
メール送信に関して
-
mb_send_mailでのメール送信が...
-
if( mb_send_mail( ・・・) ) {...
-
メンバー会員へメールの一斉送...
-
mb_send_mail関数が利用出来ない
-
POSTで送られたアドレスから@以...
-
POSTされた内容をmail関数で処...
-
mail関数で複数の宛先にメール...
-
mb_send_mail() 第 4、5 引数の...
-
【BAT(バッチ)ファイル】Web...
-
フォントの色を変えるには?
-
AccessのDoCmd.SendObjectについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php 完了画面の送信メールのコ...
-
さくらサーバーにて、phpからメ...
-
メールフォームのタイトルが文...
-
ローカル環境でのメール送信
-
mb_send_mail関数が利用出来ない
-
PHPsendmailにて送信元を変更
-
mail関数を使った場合のReturn-...
-
複数行の文字列をメールのヘッ...
-
phpでのメール転送(添付ファイ...
-
PHPで、複数のアドレスにメール...
-
000webhost.comでphpのmail()
-
サーバーによってはmb_send_mai...
-
【初歩?】変数をセットできな...
-
phpでメール送信できません 原...
-
PHPMailerのコードエラーが解決...
-
POP Before SMTPでメールを送信...
-
コマンドプロンプト、VBSでの添...
-
PHPからロリポップ!のメールサ...
-
mailやmb_send_mail関数で、本...
-
phpでのメール送信
おすすめ情報