【发布时间】:2011-01-08 00:08:59
【问题描述】:
在尝试拨号之前,我需要确定电话号码是否有效。电话可以传到世界任何地方。
什么正则表达式将匹配有效的国际电话号码?
【问题讨论】:
-
正则表达式如何处理诸如停止服务号码之类的错误?只需尝试调用和处理无效号码,就像处理其他错误一样。
-
虽然您认为正则表达式无法确定这一点是正确的,但每次出站尝试都会消耗时间和资源。对号码进行快速健全性检查可确保明显虚假的电话不会阻塞有价值的频道。
-
LOL @ paxdiablo.... 我猜 1-800-CALL-HELP 会通过你的 RegExp 测试...大声笑
-
此问题中尚不清楚的是,如果从美国或世界上任何国家/地区拨打电话,这些号码是否必须有效,因为以下大多数解决方案都无法验证某些有效号码(例如 0030 210 12312312 - 从任何欧盟国家拨打的有效希腊号码)
-
@JonHanna 我同意一点,但另一方面,从用户体验的角度来看,你不认为如果用户输入一个 00XX...X 数字,测试应该通过吗?在某些情况下,用户(即老年人)甚至不知道 + 是什么以及如何在数字/电话键盘上输入它。此外,我仍然可以争辩说 00XXX 是一个有效的国际号码(即在用户的上下文中),其中使用了退出代码而不是 +。