将电话号码存储为字符串时,如何防止输入错误?

Pea*_*Gen 4 java string validation integer vcf-vcard

我正在创建一个可以读取VCards的电话簿程序.问题在于电话号码.通常,它们在美国会是这样的:

0771234560

但如果电话号码来自外国,则看起来像这样.

+94771234560 或者可能 (22)772324000

现在有+()迹象来处理!我目前正在将电话号码(VCards包含它们作为字符串)转换为数字.但是,如果我将允许的电话号码作为字符串,那么用户可以做一些疯狂的事情,比如在联系表单中插入姓名作为电话号码.

如何将电话号码存储为字符串,但可以防止有问题的条目?

Jon*_*eet 12

绝对使用字符串,但验证它.仅仅因为它是一个字符串并不意味着你必须接受任何数据.您应该考虑使用正则表达式(或者可能是一系列正则表达式)来验证数据.

不要只限于特定的字符 - 例如,你不想接受")0("作为电话号码 - 使用合理的模式.关于电话号码的本地公约维基百科页面可能在这方面有用 -或者你可以寻找其他来源.你可能也想考虑有点宽容,因为不是每个人都会遵循确切的模式.但是要实现微妙的平衡.


pb2*_*b2q 5

不要使用数字类型的电话号码,坚持使用String.

做某种形式的输入验证.为您的电话号码定义一些限制,并在阅读卡时,请检查String您的格式:如果电话号码与您的限制不符,请拒绝.

搜索本网站以获取有关电话号码验证的问题/答案.