格式电话号码中的PHP



我有一个存储在数据库中的电话号码:

5555555555

我想将其格式化为:

(555)555-5555

使用PHP我有以下代码:

<?php
  $data = $order['contactphone'];
  if(  preg_match( '/^+d(d{3})(d{3})(d{4})$/', $data,  $matches ) )
      {
        $result = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
        echo $result;
      }
?>

这完全没有返回。甚至没有错误。我该怎么做?

这是我过去使用的。我想不像正则义务那么优雅,但可以完成工作:

/**
 * Formats a phone number
 * @param string $phone
 */
static public function formatPhoneNum($phone){
  $phone = preg_replace("/[^0-9]*/",'',$phone);
  if(strlen($phone) != 10) return(false);
  $sArea = substr($phone,0,3);
  $sPrefix = substr($phone,3,3);
  $sNumber = substr($phone,6,4);
  $phone = "(".$sArea.") ".$sPrefix."-".$sNumber;
  return($phone);
}

P.S。我没有写这篇文章,只是我六年前抓住的东西。

'/^+d(d{3})(d{3})(d{4})$/'更改为 '/^(d{3})(d{3})(d{4})$/',即:

if(  preg_match( '/^(d{3})(d{3})(d{4})$/', $data,  $matches ) )
      {
        $result = '(' . $matches[1] . ') ' .$matches[2] . '-' . $matches[3];
        echo $result;
      }

相关内容

  • 没有找到相关文章

最新更新