4

VCard を読み取ることができる電話帳プログラムを作成しています。問題は電話番号です。通常、米国では次のようになります。

0771234560

しかし、電話番号が外国の場合は、次のようになります。

+94771234560または多分(22)772324000

今、対処すべき兆候が+あります!()現在、電話番号 (VCard には文字列として含まれています) を番号に変換しています。ただし、電話番号を文字列として許可すると、連絡先フォームに名前を電話番号として挿入するなど、ユーザーは何かおかしなことをする可能性があります。

電話番号を文字列として保存し、問題のあるエントリを防ぐにはどうすればよいですか?

4

3 に答える 3

12

間違いなく文字列を使用しますが、検証してください。文字列だからといって、データを受け入れる必要があるわけではありませ。正規表現 (または一連の正規表現) を使用してデータを検証することを検討する必要があります。

特定の文字に限定しないでください - たとえば、電話番号として ")0(" を受け入れたくない - 賢明なパターンを使用してください.電話番号のローカル慣習に関するウィキペディアのページは、この面で役立つ場合があります-または、他の情報源を探すこともできます.誰もが正確なパターンに従うわけではないため、多少寛大になることを検討することもできます. ただし、微妙なバランスを達成する必要があります.

于 2012-09-08T14:37:20.557 に答える
5

電話番号に数値型を使用しないでくださいString

何らかの形式の入力検証を行います。電話番号にいくつかの制限を定義し、カードを読み取るときにString形式と照合します。電話番号が制限に一致しない場合は拒否します。

このサイトを検索して、電話番号の検証に関する質問/回答を探してください。

于 2012-09-08T14:37:26.303 に答える
4

2 つの電話番号を追加するとはどういう意味ですか? つまり、IMO、数字ではありません。

それでも検証を試みる必要がありますが、表記方法に関する現地の慣習を含め、あらゆる任意の国際番号を受け入れたい場合は、イライラするでしょう。

于 2012-09-08T14:38:52.160 に答える