用于电话号码验证的全面正则表达式

我正在尝试整合一个全面的正则表达式来验证电话号码。理想情况下它会处理国际格式,但它必须处理美国格式,包括以下内容:

  • 1-234-567-8901

  • 1-234-567-8901 x1234

  • 1-234-567-8901 ext1234

  • 1(234)567-8901

  • 1.234.567.8901

  • 1/234/567/8901

  • 12345678901

我将回答我目前的尝试,但我希望有人能有更好的和/或更优雅的东西。


用于电话号码验证的全面正则表达式

慕沐林林
浏览 924回答 4
4回答

幕布斯7119047

更好的选择......只需在输入上删除所有非数字字符(除了'x'和前导'+'符号),因为英国倾向于在被+44 (0) ...要求使用国际前缀时以非标准形式写数字(在这种特定情况下,你应该(0)完全抛弃)。然后,您最终得到如下值: 12345678901 12345678901x1234 345678901x1234 12344678901 12345678901 12345678901 12345678901 +4112345678 +441234567890然后当您显示时,重新格式化您的心灵内容。例如  1 (234) 567-8901  1 (234) 567-8901 x1234

狐的传说

事实证明,至少在北美,有一种称为NANP的规范。您需要准确指定所需内容。什么是合法分隔符?空格,破折号和句号?不允许分隔符?可以混合分隔符(例如,+ 0.111-222.3333)吗?如何处理扩展(例如,111-222-3333 x 44444)?特殊号码怎么样,比如911?区号是可选的还是必需的?这是一个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+))?$

Smart猫小萌

.*如果用户想要给你他的电话号码,那么请相信他是正确的。如果他不想给你,然后强迫他输入一个有效的号码将把他送到竞争对手的网站或让他输入一个适合你的正则表达式的随机字符串。我甚至可能想要查看优质性别性别的数量,然后输入。我还会将以下任何内容视为网站上的有效条目:"123 456 7890 until 6pm, then 098 765 4321"  "123 456 7890 or try my mobile on 098 765 4321"  "ex-directory - mind your own business"
打开App,查看更多内容
随时随地看视频慕课网APP