我怎样才能防止不良内容储存的电话号码作为字符串时?(How can I prevent bad in

2019-06-28 01:22发布

我创建一个电话簿程序,可以读取电子名片。 问题是与电话号码。 通常情况下,他们会像这样在美国:

0771234560

但是,如果电话号码是来自外国,它应该是这样的。

+94771234560或也许(22)772324000

现在有+()标志来处理! 我目前正在转换电话号码(包含电子名片它们作为字符串)为数字。 但是,如果我把允许电话号码为字符串,然后用户可以做一些疯狂,就像插入一个名称,如接触形式的电话号码。

我怎么能存储电话号码为字符串,但是防止有问题的项目?

Answer 1:

当然使用一个字符串,但验证它。 只是因为它是一个字符串,并不意味着你必须接受任何数据。 你应该考虑使用正则表达式(或者是一系列的正则表达式)来验证数据。

不要只是把它限制在特定的字符-例如,你不想接受“)0(”作为一个电话号码-使用合理的模式的。 当地的惯例维基百科页面的电话号码,可以证明是有益的在这条战线-或者你可以寻找其他来源。您可能还需要考虑是有点宽松的,因为不是每个人都将按照精确的图案。还有待实现,虽然一个微妙的平衡。



Answer 2:

不要使用数字式电话号码,坚持一个String

做某种形式的输入验证。 定义一些限制你的电话号码,并读取卡时,请检查String对您的格式:如果电话号码不匹配的限制,则拒绝它。

搜索解决这个网站有关电话号码验证的问题/解答。



Answer 3:

什么会增加两个电话号码是什么意思? 因此,国际海事组织,不是一个数字。

你还是应该尝试验证,但如果你想接受任何和所有任意国际号码,包括当地的惯例,他们是如何写的,那将是令人沮丧的。



文章来源: How can I prevent bad inputs when storing phone numbers as strings?