从字符的 x 位置替换字符串中的特定字符
Replace a particular character from a string from the x position of the character
我在替换特定字符时遇到问题。
示例 1:
格式:xxx-xxx-xxx
如果我在字段中输入 6953 并点击提交
我需要
这样的结果
000-006-953
示例 2:
格式:1ax-xxx-xxx
如果我在字段中输入 6953 并点击提交
我需要
这样的结果
1a0-006-953
示例 3:
格式:1ax-xxx-xxs
如果我在字段中输入 6953 并点击提交
我需要
这样的结果
1a0-069-53s
格式将是动态的,结果将基于格式和输入值。
我试过这个代码
$a = '1axxxxx99';
$str = 6938;
$f_str = str_pad($str, strlen($a), "0", STR_PAD_LEFT);
for ($i = count($c) - 1; $i >= 0; $i--) {
$f_str = substr_replace($f_str, '-', '-' . $c[$i], 0);
}
echo $f_str;
// For testing
$joker = '*';
$format = '1a**-***-***';
$input = 6589; // work with '6589' too
// Code start here
$input .= '';
$result = $format;
$i = strlen($format)-1;
$j = strlen($input)-1;
while($i > -1) {
if($result[$i] === $joker) {
if($j > -1) {
$result[$i] = $input[$j];
--$j;
}
else {
$result[$i] = '0';
}
}
--$i;
}
// Output for test
echo $result;
这是我要走的路:
$formats = array(
'xxx-xxx-xxx',
'1ax-xxx-xxx',
'1ax-xxx-xxs',
);
$data = '6953';
foreach($formats as $format) {
echo "$format --> ";
$j = strlen($data)-1;
for($i=strlen($format)-1; $i>=0 ; $i--) {
if ($format[$i] == 'x') {
if ($j >= 0) {
$format[$i] = $data[$j];
$j--;
} else {
$format[$i] = 0;
}
}
}
echo "$format\n";
}
输出:
xxx-xxx-xxx --> 000-006-953
1ax-xxx-xxx --> 1a0-006-953
1ax-xxx-xxs --> 1a0-069-53s
我在替换特定字符时遇到问题。
示例 1: 格式:xxx-xxx-xxx 如果我在字段中输入 6953 并点击提交 我需要
这样的结果000-006-953
示例 2: 格式:1ax-xxx-xxx 如果我在字段中输入 6953 并点击提交 我需要
这样的结果1a0-006-953
示例 3: 格式:1ax-xxx-xxs 如果我在字段中输入 6953 并点击提交 我需要
这样的结果1a0-069-53s
格式将是动态的,结果将基于格式和输入值。
我试过这个代码
$a = '1axxxxx99';
$str = 6938;
$f_str = str_pad($str, strlen($a), "0", STR_PAD_LEFT);
for ($i = count($c) - 1; $i >= 0; $i--) {
$f_str = substr_replace($f_str, '-', '-' . $c[$i], 0);
}
echo $f_str;
// For testing
$joker = '*';
$format = '1a**-***-***';
$input = 6589; // work with '6589' too
// Code start here
$input .= '';
$result = $format;
$i = strlen($format)-1;
$j = strlen($input)-1;
while($i > -1) {
if($result[$i] === $joker) {
if($j > -1) {
$result[$i] = $input[$j];
--$j;
}
else {
$result[$i] = '0';
}
}
--$i;
}
// Output for test
echo $result;
这是我要走的路:
$formats = array(
'xxx-xxx-xxx',
'1ax-xxx-xxx',
'1ax-xxx-xxs',
);
$data = '6953';
foreach($formats as $format) {
echo "$format --> ";
$j = strlen($data)-1;
for($i=strlen($format)-1; $i>=0 ; $i--) {
if ($format[$i] == 'x') {
if ($j >= 0) {
$format[$i] = $data[$j];
$j--;
} else {
$format[$i] = 0;
}
}
}
echo "$format\n";
}
输出:
xxx-xxx-xxx --> 000-006-953
1ax-xxx-xxx --> 1a0-006-953
1ax-xxx-xxs --> 1a0-069-53s