如何用连字符分割这个字符串?

时间:2010-02-23 00:32:14

标签: php

所以我有一个字符串存储电话号码,$phone = "123456790"。如何拆分以这种格式打印:123-456-7890?

5 个答案:

答案 0 :(得分: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]";

还有更多方法,但两种方法都可行。

答案 1 :(得分: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 :(得分:2)

$p = $phone; 
echo "$p[0]$p[1]$p[2]-$p[3]$p[4]-$p[5]$p[6]$p[7]$p[8]";

最少的函数调用。 :)

答案 3 :(得分:1)

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

substr()

答案 4 :(得分:1)

更多正则表达式:)

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