正则表达式为10-13位(国际)电话号码

时间:2014-04-15 12:37:32

标签: php regex preg-match

我需要将PHP注册表中的(国际)电话号码发送给外部用户。外部方对电话号码有以下规则。

  • 10-13位数
  • 允许破折号

这意味着以下数字是正确的

  • 0046701234567 (瑞典语)
  • 604-555-5555
  • 5675555555

规范和检查所有电话号码的最佳(也是最正确的)正则表达式是什么,以便我可以将它们存储在全局数据库中,然后将它们发送给外部用户?

2 个答案:

答案 0 :(得分:2)

试试:

$input = '604-555-5555';

if (preg_match('/^\d{10,13}$/', str_replace('-', '', $input))) {
  // valid
}

答案 1 :(得分:0)

<?php 
  $input = '604-555-5555';  
  if (preg_match('/[\d-]{10,13}+/', $input, $r) ) {
    // valid
    foreach($r as $e){echo $e;}do formatting      
  } 
?>