0
$length = strlen($s);

if($length == 10)
{

  $newval = '';
  for($i = 0; $i < 10; $i++)
  {

    $newval .= $s[$i];

    if($i == 2 || $i == 5)  
    {
       $newval .= '-';
    }

  }

}

如果有人知道我会使用什么样的字符串函数,请告诉我。

4

3 回答 3

5

当然,您可以使用substr来完成此操作:

if(strlen($s) == 10) {
   $s = substr($s, 0, 3) . '-' . substr($s, 3, 3) . '-' . substr($s, 6);
}

键盘示例

于 2010-12-28T07:38:45.123 回答
4

一个简单的字符串操作应该保持简单,所以使用最直接的解决方案:

$str = substr($input, 0, 3).'-'.substr($input, 3, 3).'-'.substr($input, 6);

但像往常一样,有几种方法可以给猫剥皮,所以你有选择。像:

$str = sprintf('%s-%s-%s', substr($input, 0, 3), substr($input, 3, 3), substr($input, 6));

或者,

$str = preg_replace('/^(.{3})(.{3})(.*)$/', '\1-\2-\3', $input);

或者,

$str = preg_split('//', $input);

if (5 > count($chrs)) {
   array_splice($chrs, 4, 0, '-');
}

if (3 > count($chrs)) {
   array_splice($chrs, 2, 0, '-');
}

$str = implode('', $chrs);
于 2010-12-28T08:06:32.390 回答
0

子字符串?

if(strlen($s) == 10)
{
   $newval.=substr($s,0,3)."-".substr($s,3,3)."-".substr($s,6,4);
}
于 2010-12-28T07:40:43.257 回答