在字符串中的三个字符后插入破折号的功能?

时间:2013-08-13 11:13:31

标签: php html

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

如何在一定数量的字符后添加短划线?

我尝试了很多功能,但他们都希望改变或重新复制一个角色,我不想改变任何我想插入破折号的东西 - 在字符串中的三个字符之后。

谢谢。

这是从用户那里获取数字的代码我希望将这个数字放入一个函数中,插入破折号后插入sting中的三个字符购买用户

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

6 个答案:

答案 0 :(得分:6)

$string = "123456";
$insertion = "-";
$index = 3;
$result = substr_replace($string, $insertion, $index, 0);
echo $result;

答案 1 :(得分:4)

这些答案中的大多数都误解了这个问题。如果字符串长7个字符,那么你的解决方案将无效。

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

将每3个字符插入-

答案 2 :(得分:2)

您可以找到百万种模式:

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

但你可以使用基本的substr()

答案 3 :(得分:1)

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

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

为每个可能的用例添加一个特殊功能并不会真正理智。

答案 4 :(得分:1)

哎呀,为什么不多扔几个片段?

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

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

答案 5 :(得分: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;
}

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