PHP を使用して、電話番号 # が適切に形成されているかどうかを確認するにはどうすればよいですか?
数字だけを残して、すべての非数値データを単純に削除するのが最も簡単なようです。次に、10桁が存在するかどうかを確認します。
これは最善かつ最も簡単な方法ですか?
PHP を使用して、電話番号 # が適切に形成されているかどうかを確認するにはどうすればよいですか?
数字だけを残して、すべての非数値データを単純に削除するのが最も簡単なようです。次に、10桁が存在するかどうかを確認します。
これは最善かつ最も簡単な方法ですか?
最高の?いいえ。このアプローチで見られる問題:
十分ですか?おそらく可能ですが、それはあなたとあなたのアプリ次第です.
このようなデータの検証/フィルタリングに関する問題は、通常、この質問に対する答えになります。「どの程度厳密になりたいですか?」次に、一連の「機能」の質問に発展します
ビジネスルールに応じて、これらの質問に対する回答は異なる場合があります。しかし、最も柔軟にするために、電話番号を取得するために3つのフィールドをお勧めします
3つのフィールドはすべて、プログラムで制限/数値のみのフィルターにできます。次に、それらを組み合わせてから解析可能な形式に保存するか、各値を個別に保存できます。
何かが「最善の」ことであるかどうかに答えることは、ほとんど不可能です(あなたがあなた自身の質問に答える人でない限り)。
あなたがそれを提案する方法、すべての非数字を取り除き、そして10桁があるかどうかをチェックすることは、次のような文字列に望ましくない振る舞いをもたらすかもしれません:
ジョージ・ワシントン(1732年2月22日– 99年12月14日)は、アメリカ独立戦争で大陸軍の指揮官を務め、アメリカ合衆国の初代大統領を務めました。
すべての非数字を2217321499削除すると、10 f桁の長さの文字列になりますが、文字列全体を有効な電話番号と見なす必要があるかどうかは非常に疑わしいためです。
正規表現を使用できます:
$pattern_phone = "|^[0-9\+][0-9\s+\-]*$|i";
if(!preg_match($pattern_phone,$phone)){
//Somethings wrong
}
正規表現をテストしていないため、100% 正しいとは限りません。
削除後に 10 桁をチェックすると、構文はチェックされますが、有効性はチェックされません。そのためには、地域/国で利用可能な有効な数値を特定し、おそらくパターンに一致する正規表現を作成する必要があります。
必要なフォーマットは?これには正規表現を使用できます。