说我有以下内容:
$var = "1234567890";
我希望它显示为:
1234 567 890
使用前四个数字,一个空格,然后是三个数字,一个空格,然后是三个数字。
我该怎么做?
谢谢:)
答案 0 :(得分:3)
您可以使用substr:
echo substr($var, 0, 4) . ' ' . substr($var, 4, 3) . ' ' . substr($var, 7, 3);
然而,在执行此操作之前,您应该检查以确保字符串是您期望的长度并且其中只包含数字字符,如下所示:
if (strlen($var) == 10 && is_numeric($var))
{
// $var passed the check
}
else
{
// $var failed the check
}
答案 1 :(得分:1)
假设您的数据是有效的10位数字:
echo substr( $var, 0, 4 ) . ' ' . substr( $var, 4, 3 ) . ' ' . substr( $var, 7 );
答案 2 :(得分:1)
如果你不太特别,你可以这样做:
$var = substr($var,0,4)." ".substr($var,4,3)." ".substr($var,7);
这将在您描述时将其分解,如果输入大于预期,它将作为“奖励”返回无限数量的附加字符。或者你可以做
$var = substr($var,0,4)." ".substr($var,4,3)." ".substr($var,7,3);
截断超过10日的数字。
答案 3 :(得分:0)
你也可以使用正则表达式:
$var = preg_replace("@(\d{4})(\d{3})(\d{3})@", "\\1 \\2 \\3", $var);
或者,更确切地说:
$var = preg_replace("@^(\d{4})(\d{3})(\d{3})$@", "\\1 \\2 \\3", $var);