-1

我有这个:

preg_replace('/(\d{1}|\d{2})/gi', '$1', 'some number');

如果文本是一位数字 $1 返回一位数字,如果是 2 位则返回 2 位数字....,但我需要返回的数字始终是 2 位数字:

1 => 01 
2 => 02
...
10 => 10
...
99 => 99

我怎样才能做到这一点?

4

4 回答 4

1

你的意思是像这个?使用修饰符,使用函数e执行 php 代码,以及满足你的要求的任何东西。preg_replacestr_padsprintf

preg_replace('/(\d{1}|\d{2})/ie', 'sprintf("%02d",$1)', 'some number');

于 2012-07-16T07:10:34.463 回答
1

使用 str_pad()。它便宜很多。http://php.net/str_pad

于 2012-07-16T06:49:06.757 回答
1

为什么这么复杂?亲吻和使用str_pad

echo str_pad($input, 2, "0", STR_PAD_LEFT);
于 2012-07-16T06:49:47.303 回答
0

请使用str_pad(). 自 PHP 5.5.0 起,该e修饰符已弃用,应避免使用。

于 2014-07-10T14:38:30.180 回答