我有一个存储在数据库中的电话号码:
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;
}