繁体   English   中英

使用国家代码检查的电话号码的正则表达式(RegEx)

[英]Regular Expression (RegEx) For Phone Numbers With Country Code Check

我需要一个PHP RegEx,通过它我可以使用以下标准验证电话号码格式:

  • 除数字外不应包含任何内容;
  • 不应该从零开始,因为我需要以国家代码为前缀;
  • RegEx中应包含允许的国家/地区代码列表;
  • 国家代码后面的数字不应为零;
  • 该号码的最大长度不应超过13位。

在发布此问题之前,我曾尝试搜索Stack Overflow但无法找到确切的解决方案。 任何帮助将受到高度赞赏。

编辑:我只是希望用户以有效的格式输入电话号码,因为目前我的客户在编写时会犯一些愚蠢的格式错误。 我不担心它实际上是有效的(可调用),因为用户将自己处理。

问候

我不会把手指烧在这上面。

只是通过查看电话号码,您无法判断它是否有效,即使它“看起来”有效,也可能不是您正在寻找的电话号码(即其他人的电话号码)。

你试图在错误的水平解决问题。 验证电话号码的唯一方法是实际调用它;)

一个满足您标准的正则表达式:

/^(1|20|21|..etc)[1-9][0-9]+$/

国家/地区代码列表(由|分隔)后跟一个非0的数字,后跟任意数字的任意数字。

你不能在一个正则表达式中进行13长度检查和国家检查,因为国家代码的长度不同(据我所知)。 您可以使用通用正则表达式执行13长度检查,例如:

/^.{,13}$/

匹配长达13个字符的任何内容

国家代码后面的数字不应为零;

那个系统将失败意大利。 意大利电话号码0领先从国外拨打。

他们可能是其他一些也会发生这种情况的国家,但意大利是最知名的国家。

该号码的最大长度不应超过13位。

对于较短的数字但添加了扩展名,该规则将在多个国家/地区中断。

使用3位国家代码,3位数区号和8位用户号码,您只需数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM