使用与使用string.replacement()的字符串相似的数字替换字符串

replace string with numbers that resembles the string using string.replace()

本文关键字:字符串 数字 替换 相似 string replacement      更新时间:2023-09-26

这里有一行代码,我更喜欢将'123'作为字符串值
然后在split()和join()的帮助下,它将变成一个类似'1,2,3'的字符串
然后我想用1,2....这样的实际数字替换所有的数字字符串值
为此,我使用了一个名为k的变量,并给它一个初始值1。
我在replace中使用了一个增量运算符来更改k的值
但它不起作用。也许我弄错了string.replacement()执行替换操作的方式
我还试着使用parseInt('$1'),但它也不起作用。

控制台输出1,1,1。不进行增量操作。

<html>
<body>
<script>
(function(){
var k=1;
   console.log(prompt('input here').split('').join(',').replace(/('d)/g,k++));
})();
</script>
</body>
</html>

好吧,您可以使用替换回调:

var k = 1;
'123'.split('').join(',').replace(/'d/g, function() {
  return k++;
});

目前,k++被视为一个参数——换句话说,此操作只计算一次。

但是,如果你只想得到一个整数序列,有更好的方法。例如:

function getSequence(start, end) {
  var res = [];
  for (var i = start; i <= end; i++) {
    res.push(i);
  }
  return res;
  // or just...
  // return Array.apply(0, Array(end - start + 1))
  //             .map(function(_, i) { return start + i });
  // ... if you feel adventurous. )
}
getSequence(2, 4); // [2, 3, 4]

如果您不想增加数字:

var arr = '123'.split('').map(Number);

如果你这样做:

var arr = '123'.split('').map(function (num) { return Number(num) + 1; });