電話番号入力確認 やっぱり分かりません。
以前電話番号の入力に関する質問をしていて、いろいろご回答頂き自分で取り組んだのですが、やはり分かりません。一様、下記のコードを制作したのですが、まだ、ちゃんと動かない状態です。なぜちゃんと動かないかお分かりの方、おられましたら教えて下さい。
電話番号の判定に関する正規表現
$tel1は市外局番、 $tel2は市内局番、 $tel3はお客様番号 ついでに$tel4は内線番号としたい。
それでどのような判定を正規表現でしたいかというと
1)まず、この電話番号入力欄は入力しても空欄でもよい。
2)ただし、$tel1、 $tel2又は$tel3の一つにでも入力した場合は、他の二つにも(たとえば、$tel1に入力した場合には$tel2及び$tel3にも)必ず入力しなければならない。
3)$tel4は空欄でも入力しても良いが、$tel4を入力する場合は必ずtel1、 $tel2及び$tel3が入力されている必要がある。
4)tel1、 $tel2、$tel3及び$tel4に入力がある場合は、数字のみ可能。
これらの判定は、ばらばらに行なうのではなくまとめて行ないます。そのため結果は「電話番号正確」又は「電話番号不正確」のどちらかが1回のみ出力されるようにします。
以下は、目指す表示結果です。
この場合、「電話番号不正確」としたい。
$tel1 = 123
$tel2 = 空欄
$tel3 = 789
$tel4 = 空欄
この場合、「電話番号不正確」としたい。
$tel1 = a
$tel2 = 456
$tel3 = 789
$tel4 = 空欄
この場合、「電話番号不正確」としたい。
$tel1 = 空欄
$tel2 = 空欄
$tel3 = 空欄
$tel4 = 101
この場合、「電話番号不正確」としたい。
$tel1 = 123
$tel2 = 456
$tel3 = 789
$tel4 = a
この場合、「電話番号正確」としたい。
$tel1 = 123
$tel2 = 456
$tel3 = 789
$tel4 = 空欄
この場合、「電話番号正確」としたい。
$tel1 = 123
$tel2 = 456
$tel3 = 789
$tel4 = 101
この場合、「電話番号正確」としたい。
$tel1 = 空欄
$tel2 = 空欄
$tel3 = 空欄
$tel4 = 空欄
以下の私のコードはちゃんと動作しません。なぜか分かりません。
<?php
$tel_flg1 = 0;
$tel_flg2 = 0;
$mix = $tel1 . $tel2 . $tel3;
if ($tel1 != "" or $tel2 != "" or $tel3 !="" or $tel4 !=""){
if (!ereg("^[0-9]+$", $mix)) {
$tel_flg1 = 1;
}
}
if ($tel4 != ""){
if (!ereg("^[0-9]+$", $tel4)) {
$tel_flg2 = 1;
}
}
if ($tel_flg1 == 1 or $tel_flg2 == 1) {
echo '電話番号不正確';
}else{
echo '電話番号正確';
}
?>
コードを修正していただくか、正しいコードを教えていただければ幸いです。
コードが修正可能なら、修正していただいた方がどこを間違えていたのか理解しやすいです。
よろしくお願いします。