5

我在 input=text 中有一个表单,用户输入了一个像 123456 这样的数字我想将其更改为 123-456

如何在一定数量的字符后加上破折号?

我尝试了很多函数,但它们都想改变或重复一个字符,我不想改变任何东西,我只想在字符串中的三个字符之后插入一个破折号。

谢谢你。

这是从用户那里获取数字的代码我想把这个数字放在一个函数中,在插入的刺中三个字符之后插入破折号购买用户

<tr>
 <td> <small>RIG CHARGE:</small> </td>
 <td> <input type="text" name="rch" value="<?php echo $objWorksheet->getCellByColumnAndRow(6, 21)->getValue(); ?>"> </td>
</tr>
4

6 回答 6

9
$string = "123456";
$insertion = "-";
$index = 3;
$result = substr_replace($string, $insertion, $index, 0);
echo $result;
于 2013-08-13T11:17:28.790 回答
4

这些答案中的大多数都误读了这个问题。如果字符串长度为 7 个字符,则您的解决方案将不起作用。

$split = str_split($inputStr, 3);
implode('-', $split);

-每 3 个字符插入一个。

于 2013-08-13T11:18:53.310 回答
2

在数百万种模式中,您可以找到:

implode('-', str_split($input, 3));

但是你可以用 basic 来做substr()

于 2013-08-13T11:21:03.570 回答
1

通用的字符串操作函数,即substr,足以处理这个问题:

$value = substr($value, 0, 3).'-'.substr($value, 3);

为每个可能的用例添加一个特殊的功能并不明智。

于 2013-08-13T11:16:40.823 回答
1

哎呀,为什么不再扔一个片段呢?

preg_replace('/^(\d{3})(\d+)$/', '$1-$2', $number)

我知道$problems++等等...

于 2013-08-13T11:22:24.370 回答
0

这是答案-

$str='aaabbbccceeefffggghhh';
$ans=format($str);
echo $ans;

function format($str){
$output=''; 
for($i=0;$i<strlen($str);$i=$i+6){
$substr1=substr($str,$i,3);
$substr2=substr($str,$i+3,3);
$output.='-'.$substr1.'-'.$substr2; 
}
$output=substr($output,1,strlen($output));
$output=substr($output,0,strlen($output)-1);
return $output;
}

现在这将适用于任意数量的字符

于 2013-08-13T11:28:17.167 回答