我正在创建一个可以读取 VCard 的电话簿程序。问题出在电话号码上。通常,在美国他们会是这样的:
0771234560
但如果电话号码来自国外,它会是这样的。
+94771234560
或者 (22)772324000
现在有 +
和 ()
标志需要处理!我目前正在将电话号码(电子名片将它们作为字符串包含)转换为数字。但是,如果我将允许电话号码作为字符串,那么用户可能会做一些疯狂的事情,比如在联系表单中插入姓名作为电话号码。
如何将电话号码存储为字符串,同时防止有问题的输入?
最佳答案
肯定会使用字符串,但要验证它。仅仅因为它是一个字符串并不意味着您必须接受任何 数据。您应该考虑使用正则表达式(或者可能是一系列正则表达式)来验证数据。
不要只将其限制为特定字符 - 例如,您不想接受 ")0("作为电话号码 - 使用合理的模式。Wikipedia page on local conventions for phone numbers 可能在这方面有帮助 - 或者你可以寻找其他来源。您可能还想考虑有点宽容,因为不是每个人都会遵循确切的模式。不过需要达到微妙的平衡。
关于java - 将电话号码存储为字符串时如何防止输入错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331656/