-1

重複の可能性:
電話番号検証のための包括的な正規表現

メールと電話番号の検証のためにこの関数を作成してください。メール自体は機能しますが、電話自体は機能しません。

if(trim($_POST['email']) == '')  {
    $hasError = true;
} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$",     
         trim($_POST['email']))) {
    $hasError = true;
} else {
    $email = trim($_POST['email']);
}

if(trim($_POST['phonenumber']) == '')  {
    $hasError = true;
} else if (!eregi("/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/$",      
          trim($_POST['phonenumber']))) {
    $hasError = true;
} else {
    $phonenumber= trim($_POST['phonenumber']);
}
4

2 に答える 2

0

preg_matchまず、代わりにを使用する必要がありますeregi

それとは別に、人々はさまざまな方法で電話番号を入力します。それらを処理する最も簡単な方法は、数字以外のものを取り除き、10 桁かどうかを確認することです。

$number = preg_replace("/\D/","",$_POST['phonenumber']);
if( strlen($number) == 10) { /* ok */ }
else { /* error */ }
于 2012-06-21T16:47:20.100 に答える
0

それを行うより良い方法は、入力からすべての非数値文字を取り除き、長さが特定の範囲内にあることを確認することだと思います。特に、このデータをデータベースに保存しているため、不要なデータを保存することはありません。

x拡張機能を許可する場合は、文字をそのままにしておくことをお勧めします。これは、文字列から数字以外のすべての文字を削除する関数です ( を除くx)。

function removeNonNumeric($string) {
    return preg_replace('/[^\dx]/', '', $string)
}

結果を出力する必要がある場合は、必要に応じてフォーマットできます。

于 2012-06-21T17:01:52.887 に答える