我怎样才能用连字符分割这个字符串?
答
$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
答
下面的代码也将验证您的输入。
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
}
答
$p = $phone;
echo "$p[0]$p[1]$p[2]-$p[3]$p[4]-$p[5]$p[6]$p[7]$p[8]";
最少的函数调用。 :)
答
更多的正则表达式:)
$phone = "1234567890";
echo preg_replace('/^(\d{3})(\d{3})(\d{4})$/', '\1-\2-\3', $phone);
正则表达式,但你有两个问题。 – glasnt 2010-02-23 00:33:19
对于regEx来说并不难,见下文。 – Erik 2010-02-23 00:43:04