2010-02-23 87 views

回答

7
$areacode = substr($phone, 0, 3); 
$prefix = substr($phone, 3, 3); 
$number = substr($phone, 6, 4); 

echo "$areacode-$prefix-$number"; 

你也可以用正則表達式做到這一點:

preg_match("/(\d{3})(\d{3})(\d{4})/",$phone,$matches); 
echo "$matches[1]-$matches[2]-$matches[3]"; 

有更多的方式,但無論是將工作。

+0

+1爲美好的reg-ex – 2010-02-23 02:33:43

1
echo substr($phone, 0, 3) . '-' . substr($phone, 3, 3) . '-' . substr($phone, 6); 

substr()

3

下面的代碼也將驗證您的輸入。

preg_match('/^(\d{3})(\d{3})(\d{4})$/', $phone, $matches); 

if ($matches) { 
    echo(implode('-', array_slice($matches, 1))); 
} 
else { 
    echo($phone); // you might want to handle wrong format another way 
} 
2
$p = $phone; 
echo "$p[0]$p[1]$p[2]-$p[3]$p[4]-$p[5]$p[6]$p[7]$p[8]"; 

最少的函數調用。 :)

1

更多的正則表達式:)

$phone = "1234567890"; 
echo preg_replace('/^(\d{3})(\d{3})(\d{4})$/', '\1-\2-\3', $phone); 
相關問題