【问题标题】:Regex to validate Nigerian phone numbers using PHP's preg_match_all()使用 PHP 的 preg_match_all() 验证尼日利亚电话号码的正则表达式
【发布时间】:2022-01-07 14:48:19
【问题描述】:

我需要一个正则表达式来匹配以下格式的数字:

0000 000 0000
01 000 0000
+234 1 000 0000
0000-000-0000
00000000000
234 000 000 0000
234(000)000-0000
234(000)000 0000
+234(000)000 0000
+234(000) 000 0000
+234(000)000-0000
2340000000000
+2340000000000

我已经尝试过的: $pattern = '/^234[0-9]{11}/';

但它只匹配: 23400000000000

仍然是一个正则表达式新手。表达式应该与 PHP 8 PCRE 和preg_match_all() 完全兼容。也希望对表达式进行解释。

【问题讨论】:

  • 因为我无法回答这个问题——你很接近:/234[0-9]*?.*/REGEX
  • 如果你需要前面的+ .. 你只需/.*234[0-9]*?.*/
  • 更新如果你需要+ -- /^(\+)?234[0-9]*?.*/
  • 对我来说不起作用@Zak
  • regex101.com/r/1099Nr/1 -- 这是基本的 REGEX .. 如果它不起作用,则说明您没有正确设置。

标签: php regex preg-match-all


【解决方案1】:

这将满足您的需求.. 如果您访问THIS SITE, TO SEE DEMO AND EXPLAIATION,您可以通过右栏查看它是如何工作的。鉴于您提出了很多关于正则表达式的问题,我建议您齐心协力了解它的工作方式。

/^(\+)?(234|0)[0-9]*?.*/

【讨论】:

    【解决方案2】:

    请删除重复的问题。 您可以将reg | reg 用作or 运算符。可能最后一节可以和第一节结合,但现在很清楚发生了什么:

    (^(\+)?234[\( ]?[0-9]{3}\)? ?[0-9]{3}[\- ]?[0-9]{4})|(^[0-9]{4}[\- ]?[0-9]{3}[\- ]?[0-9]{4})|(^01 ?[0-9]{3} ?[0-9]{4})|(^\+234 1 [0-9]{3} [0-9]{4})
    

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多