Php 如何使用连字符拆分此字符串?

Php 如何使用连字符拆分此字符串?,php,Php,所以我有一个字符串来存储电话号码,比如,$phone=123456790。如何将其拆分为以下格式:123-456-7890 $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=123456790。如何将其拆分为以下格式:123-456-7890

$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]";
有更多的方法,但任何一种都会奏效

echo substr($phone, 0, 3) . '-' . substr($phone, 3, 3) . '-' . substr($phone, 6);
您也可以使用正则表达式执行此操作:

preg_match("/(\d{3})(\d{3})(\d{4})/",$phone,$matches);
echo "$matches[1]-$matches[2]-$matches[3]";
有更多的方法,但任何一种都会奏效

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

下面的代码还将验证您的输入

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
}

下面的代码还将验证您的输入

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
}
最少的函数调用:

最少的函数调用:

更多regexp:

$phone = "1234567890";
echo preg_replace('/^(\d{3})(\d{3})(\d{4})$/', '\1-\2-\3', $phone);
更多注册表项:

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

正则表达式,但是你有两个问题。正则表达式也不是那么难,见下文。正则表达式,但是你有两个问题。正则表达式也不是那么难,见下文。