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

Saa*_*aad 5 php regex phone-number

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

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

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

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

问候

Hal*_*yon 5

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

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

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

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

/^(1|20|21|..etc)[1-9][0-9]+$/
Run Code Online (Sandbox Code Playgroud)

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

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

/^.{,13}$/
Run Code Online (Sandbox Code Playgroud)

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

  • 我赞同这一点。OP 有很好且有效的想法,但是有很多方法可以提交可以通过*任何*模式检查的无效电话号码,这实际上没有多大意义。 (2认同)