我创建一个电话簿程序,可以读取电子名片。 问题是与电话号码。 通常情况下,他们会像这样在美国:
0771234560
但是,如果电话号码是来自外国,它应该是这样的。
+94771234560
或也许(22)772324000
现在有+
和()
标志来处理! 我目前正在转换电话号码(包含电子名片它们作为字符串)为数字。 但是,如果我把允许电话号码为字符串,然后用户可以做一些疯狂,就像插入一个名称,如接触形式的电话号码。
我怎么能存储电话号码为字符串,但是防止有问题的项目?
当然使用一个字符串,但验证它。 只是因为它是一个字符串,并不意味着你必须接受任何数据。 你应该考虑使用正则表达式(或者是一系列的正则表达式)来验证数据。
不要只是把它限制在特定的字符-例如,你不想接受“)0(”作为一个电话号码-使用合理的模式的。 当地的惯例维基百科页面的电话号码,可以证明是有益的在这条战线-或者你可以寻找其他来源。您可能还需要考虑是有点宽松的,因为不是每个人都将按照精确的图案。还有待实现,虽然一个微妙的平衡。
不要使用数字式电话号码,坚持一个String
。
做某种形式的输入验证。 定义一些限制你的电话号码,并读取卡时,请检查String
对您的格式:如果电话号码不匹配的限制,则拒绝它。
搜索解决这个网站有关电话号码验证的问题/解答。
什么会增加两个电话号码是什么意思? 因此,国际海事组织,不是一个数字。
你还是应该尝试验证,但如果你想接受任何和所有任意国际号码,包括当地的惯例,他们是如何写的,那将是令人沮丧的。