我们有一个联系人及其电话号码的数据库,我们想验证这些电话号码是否确实存在。我用谷歌搜索,没有找到任何解决方案。我正在寻找以下其中一种,但我更喜欢第一种选择。
使用现有的电话库编写代码,检查联系人的电话是否确实存在。可能我们会让手机响一次或两次
使用可用于拨打手机的现有软件并手动验证用户联系号码。
非常感谢任何帮助。
答案 0 :(得分:5)
我一直致力于一个向手机号码发送短信的应用程序。我发现文本消息实际上是从STMP处理的。当您发送短信时,它会被发送到
1231231234@provider.com
例如
4056643241@vtext.com
会引用Verizon的号码。
假设,您可以通过查询每个服务提供商并检查响应来检查是否存在号码。不确定这是否适用于固定电话。
您可以找到服务提供商列表here
我会遍历列表中的每个提供程序,并检查是否可以提取响应。如果你不能,时间换档 - 电话目录将包含固定电话号码。除了没有发短信的手机外,我们已经取消了美国网格上的每个号码,这种情况越来越少了。
更新:此技术有效,但在某些州滥用可能会非法,并且您可能会收取短信费用。这应仅用于检查一些选择的号码,而不是试图分析未经同意使用其信息的用户。
答案 1 :(得分:2)
您的问题涉及很多关于您的要求的模糊。但是,让我们得到一些一般性的想法。
只要没有安装正确的更新过程,任何有关自然事实的存储库都会立即老化。这是一个基本的事实,你可以从那里得出一些结论,如果你记住,没有内在的过程可以阻止人们在他们改变时更新他们的数字:
一个。任何包含这些现有软件的存储库都会有过时的数据 湾第二,您完成了电话号码验证,这些数据将会老化
根据您的要求,您可以从这些结论中得出以下结论:
对于随机生成的美国电话号码,我会从那里开始:
答案 2 :(得分:1)
你可以检查
// 10位数的电话号码 ^(:+ 1 \ S *(:[.-] \ S *)????)(?:?(\ S *([2-9] 1 [02-9] | [2-9] [ 2月8日] 1 | [2-9] [2月8日] [02-9])\ S *)|([2-9] 1 [02-9] | [2-9] [2月8日] 1 | [2-9] [2月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})$ <? / p>
//允许10位数的电话号码 ^(:+ 1 \ S *(:[.-] \ S *)????)(?:?(\ S *([2-9] 1 [02-9] | [2-9] [ 2月8日] 1 | [2-9] [2月8日] [02-9])\ S *)|([2-9] 1 [02-9] | [2-9] [2月8日] 1 | [2-9] [2月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 |扩展名)\ S *(\ d +))$
// 7位或10位电话号码 ????^(:(:+ 1 \ S *(:[.-] \ S *))(:????(\ S *([2-9] 1 [02-9] | [2- 9] [2月8日] 1 | [2-9] [2月8日] [02-9])\ S *)|([2-9] 1 [02-9] | [2-9] [02 -8] 1 | [2-9] [2月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] [2月8日] 1 | [2-9] [2月8日] [02-9])\ S *)|([2-9] 1 [02-9] | [2-9] [02 -8] 1 | [2-9] [2月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 |扩展名)\ S *(\ d +))$
//允许使用10位数的电话号码,虚荣(字母数字) ^(:+ 1 \ S *(:[.-] \ S *)????)(?:?(\ S *([2-9] 1 [02-9] | [2-9] [ 2月8日] 1 | [2-9] [2月8日] [02-9])\ S *)|([2-9] 1 [02-9] | [2-9] [2月8日] ?1 | [2-9] [2月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] [ 2月8日] 1 | [2-9] [2月8日] [02-9])\ S *)|([2-9] 1 [02-9] | [2-9] [2月8日] ?1 | [2-9] [2月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
你也可以检查一下 http://regexlib.com/(A(3k11t-l-bx51TbStx_502eQq_kMPKrbAUku29jOowfM7aos6m8LTywGmKyLQ9PvcrjtaYPs4AczP5NXz2h7ZVMCGJSGrq8WHjaHgNAZ4GUc1))/DisplayPatterns.aspx?cattabindex=6&categoryId=7&AspxAutoDetectCookieSupport=1答案 3 :(得分:1)