在 php 中格式化整数或字符串
Format integer or string in php
很抱歉问了一个菜鸟问题,但我想知道你是否可以用逗号或破折号格式化 php 中的字符串,像这样:
例如。 #1
Sample Input: 123456789
Formatted Output: 123,456,789 or 123-456-789
例如。 #2
Sample Input: 0123456789
Formatted Output: 012,3456,789 or 012-3456-789
如果有人能帮助我,那将不胜感激。
您可以在此处使用正则表达式替换:
function formatNum($input, $sep) {
return preg_replace("/^(\d{3})(\d+)(\d{3})$/", "".$sep."".$sep."", $input);
}
echo formatNum("123456789", ","); // 123,456,789
echo "\n";
echo formatNum("0123456789", "-"); // 012-3456-789
如果只是将初始字符串拆分为 3 个字符段并将它们与特定字符连接起来,您可以使用 str_split()
和每个段中所需的字符数,然后 implode()
带有您需要的分隔符的结果...
$test = '012345678';
echo implode("-", str_split($test, 3));
$number = 133456789;
$number_text = (string)$number; // convert into a string
if(strlen($number_text) %3 == 0){
$arr = str_split($number_text, "3");
// $price_new_text = implode(",", $arr);
$number_new_text = implode("-", $arr);
echo $number_new_text;
}
else{
if( preg_match( '/(\d{3})(\d{4})(\d{3})$/', $number_text, $matches ) )
{
$number_new_text = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
$number_new_text = $matches[1] . ',' .$matches[2] . ',' . $matches[3];
echo $number_new_text;
}
}
很抱歉问了一个菜鸟问题,但我想知道你是否可以用逗号或破折号格式化 php 中的字符串,像这样:
例如。 #1
Sample Input: 123456789
Formatted Output: 123,456,789 or 123-456-789
例如。 #2
Sample Input: 0123456789
Formatted Output: 012,3456,789 or 012-3456-789
如果有人能帮助我,那将不胜感激。
您可以在此处使用正则表达式替换:
function formatNum($input, $sep) {
return preg_replace("/^(\d{3})(\d+)(\d{3})$/", "".$sep."".$sep."", $input);
}
echo formatNum("123456789", ","); // 123,456,789
echo "\n";
echo formatNum("0123456789", "-"); // 012-3456-789
如果只是将初始字符串拆分为 3 个字符段并将它们与特定字符连接起来,您可以使用 str_split()
和每个段中所需的字符数,然后 implode()
带有您需要的分隔符的结果...
$test = '012345678';
echo implode("-", str_split($test, 3));
$number = 133456789;
$number_text = (string)$number; // convert into a string
if(strlen($number_text) %3 == 0){
$arr = str_split($number_text, "3");
// $price_new_text = implode(",", $arr);
$number_new_text = implode("-", $arr);
echo $number_new_text;
}
else{
if( preg_match( '/(\d{3})(\d{4})(\d{3})$/', $number_text, $matches ) )
{
$number_new_text = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
$number_new_text = $matches[1] . ',' .$matches[2] . ',' . $matches[3];
echo $number_new_text;
}
}