我在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>
答案 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;
}
现在这适用于任意数量的字符