我们有一个联系人及其电话号码的数据库,我们想验证这些电话号码是否真的存在。我用谷歌搜索并没有找到任何解决方案。我正在寻找以下之一,尽管我更喜欢第一个选项。
使用现有的电话库编写代码以检查联系人的电话是否真实存在。可能我们让电话响一两次
使用可用于拨打电话并手动验证用户联系号码的现有软件。
任何帮助是极大的赞赏。
我们有一个联系人及其电话号码的数据库,我们想验证这些电话号码是否真的存在。我用谷歌搜索并没有找到任何解决方案。我正在寻找以下之一,尽管我更喜欢第一个选项。
使用现有的电话库编写代码以检查联系人的电话是否真实存在。可能我们让电话响一两次
使用可用于拨打电话并手动验证用户联系号码的现有软件。
任何帮助是极大的赞赏。
我一直在开发一个向电话号码发送短信的应用程序。我发现短信实际上是从 STMP 处理的。当您发送短信时,它会发送到
1231231234@provider.com
例如
4056643241@vtext.com
将参考Verizon的号码。
然后,假设您可以通过查询每个服务提供商并检查响应来检查号码是否存在。不确定这是否适用于固定电话。
您可以在此处找到服务提供商列表
我将遍历列表中的每个提供者并检查您是否可以提取响应。如果你不能,是时候换档了——电话簿将包含固定电话号码。我们已经消除了美国电网上的所有号码,除了任何不发短信的手机,这种情况越来越少。
更新:这种技术是有效的,但如果被滥用,在某些州可能是非法的,并且您可能会产生信息费用。这应该只用于检查一些选定的数字,而不是试图对未同意使用其信息的用户进行剖析。
您的问题涉及很多关于您的要求的模糊性。然而,让我们得到一些一般的想法。
只要没有安装适当的更新过程,任何关于自然事实的存储库都会立即老化。这是一种基本事实,如果您牢记没有内在的过程可以阻止人们在更改他们的号码时更新他们的号码,您可以从中得出一些结论:
一个。包括这些现有软件在内的任何存储库都将包含过时的数据 b. 完成电话号码验证后,这些数据将老化
根据您的要求,您可以从这些结论中得出以下结论:
对于随机生成美国电话号码,我将从那里开始:
你可以检查
//10位电话号码 ^(?:+?1\s*(?:[.-]\s*)?)?(?:(\s*([2-9]1[02-9]) |[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[02-9]|[2- 9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?([2-9]1[02 -9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9 ]{4})$
//10位电话号码,允许分机 ^(?:+?1\s*(?:[.-]\s*)?)?(?:(\s*([2-9]1[02 -9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[02-9]| [2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?([2-9] 1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([ 0-9]{4})(?:\s*(?:#|x.?|ext.?|extension)\s*(\d+))?$
//7 位或 10 位电话号码 ^(?:(?:+?1\s*(?:[.-]\s*)?)?(?:(\s*([2-9]1 [02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[02-9 ]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([ 2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s* )?([0-9]{4})$
//7位或10位电话号码,允许分机号 ^(?:(?:+?1\s*(?:[.-]\s*)?)?(?:(\s*([2- 9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[ 02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?) ?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-] \s*)?([0-9]{4})(?:\s*(?:#|x.?|ext.?|extension)\s*(\d+))?$
//10 位电话号码,允许虚名(字母数字) ^(?:+?1\s*(?:[.-]\s*)?)?(?:(\s*([2-9]) 1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1[02- 9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?([2 -9a-z]1[02-9a-z]|[2-9a-z][02-9a-z]1|[2-9a-z][02-9a-z]{2})([ 0-9a-z]{4})$
//10 位电话号码,允许虚荣,末尾允许额外字符 ^(?:+?1\s*(?:[.-]\s*)?)?(?:(\s*([2 -9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*)|([2-9]1 [02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)? ([2-9a-z]1[02-9a-z]|[2-9a-z][02-9a-z]1|[2-9a-z][02-9a-z]{2} )([0-9a-z]{4})([0-9a-z]*)$
另外,我找到了检查美国号码的正则表达式。
^([0-9]{3})[0-9]{3}-[0-9]{4}$ 和
^[0-9]{3}-[0-9]{3}-[0-9]{4}$ 是使用交替 ((...|...)):将它们指定为两个 -单独的选项:
^(([0-9]{3})|[0-9]{3}-)[0-9]{3}-[0-9]{4}$ 顺便说一句,当美国人把这个地区括号中的代码,我们实际上在后面放了一个空格;例如,我会写 (123) 123-1234,而不是 (123)123-1234。所以你可能想写:
^(([0-9]{3}) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$
我希望它适用于 wiki 中列出的所有格式
http://en.wikipedia.org/wiki/Category:Telephone_numbers_in_the_United_States