
Webサイトに問い合わせフォームを設けているのですが、電話番号のチェックで改善したいことがあります。
現状の問い合わせフォームでは、桁数が異なる場合と数字以外が入力されたら「エラー」を返しているのですが、次のように、ハイフン無しの数字だけで入力した場合、「エラー」になってしまいます。
090********
03********
現状、ハイフン有りで入力した場合でしか「正確」にならないので、ハイフン無しで入力した場合も「正確」にしたいです。
ちなみに、電話番号のコードは次の通りです。
$tel = htmlspecialchars($_POST['tel'], ENT_QUOTES, "UTF-8");
$telError = false;
if (!preg_match(
'/^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$/',
$tel)) {
$telError = true;
$tel='※正しい電話番号を指定してください。';
}
どのようなコードにしたら、ハイフンなしでもエラーチェックができるでしょうか?
No.2ベストアンサー
- 回答日時:
俺のやり方は正しいとは言えないけど、チェックする前に別の変数に入れて、ハイフンをstr_replaceでざっくりやってから、[0-9]{11,12}としてる。
あと htmlspecialchars は表示する段階で使ってる。
ありがとうございます!
phpの理解は無いのですが、ご教示頂いた方法について理解してみたいと思います!!
それで、できればやってみます!!
No.1
- 回答日時:
もう少しざっくりやるならこんな感じで
$pattern='/^0[1-9]+[0-9\-]+$/';
0から始まり、1から9の数字が続き、0~9の数字かハイフンだけで構成された文字列
<?PHP
$a=array("0-12345-6789","01-2345-6789","0123-45-6789","01234-5-6789","0123456789","123-456-7890");
$pattern='/^0[1-9]+[0-9\-]+$/';
foreach($a as $val){
if(preg_match($pattern,$val)){
print "ok:";
}else{
print "ng:";
}
print $val."<br>\n";
}
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Smartyで部分一致
-
Excelで数字のみを2倍3倍にする...
-
PHPで変数から1行目だけを取得...
-
Smartyを使用した、テンプレー...
-
PHPメールフォーム URLと半角...
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
改行について
-
【VBA】エクセルで最後の不要な...
-
メッセージボックスで1025文字...
-
VBAでCSVをExcelに取り込む時に...
-
エスケープ文字の復帰(¥r)と...
-
Excel関数「COUNTIF」で”文字”...
-
C言語の標準入力で改行しない方法
-
LaTeX: captionの中で改行した...
-
ソースコードの1行が長いとき...
-
C++で空Enterの入力を判...
-
全角括弧と全角読点の間隔を狭...
-
XMLのタグ名の禁則文字
-
CSVファイルの改行コード判別
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
、"(ダブルクォーテーション)...
-
正規表現で、半角大文字と半角...
-
PHPで変数から1行目だけを取得...
-
PHPで<a>タグ内からURLと文字を...
-
VBAを使ってHTMLソースから特定...
-
携帯アドレスの正規表現
-
switchの大量分岐の高速化
-
正規表現について
-
preg_matchでエラーが出ます。
-
変数に指定文字列が含まれると...
-
電話番号のチェック ハイフン...
-
1ファイルから項目を正規表現で...
-
正規表現で「0」のみ抽出
-
複雑な/による文字列の分割につ...
-
サイトが移動しました(301)が...
-
Smartyで部分一致
-
Excelで数字のみを2倍3倍にする...
-
PHPの正規表現について
-
PHPで あるフォルダ内の、特定...
-
正規表現 先頭一桁をマッチさせ...
おすすめ情報