【问题标题】:Insert comma after characters in JavaScript在 JavaScript 中的字符后插入逗号
【发布时间】:2020-12-15 12:20:32
【问题描述】:

我试图在一些字符长度后添加逗号,但我失败了,因为我的情况不同。我想实现的我想在字符长度之后插入逗号,例如(1,23,433,4444,55555)。例如,如果字符是 (123)。然后我想在 1 ( 1,23 ) 之后插入逗号。如果字符是 (123433) 那么我想插入逗号 (1,23,433) 。有人可以帮我解决这个问题。

谢谢

代码

Convert = (x) => {
    x = x.toString()
    var lastThree = x.substring(x.length - 2)
    var otherNumbers = x.substring(0, x.length - 3)
    if (otherNumbers != '') lastThree = ',' + lastThree
    var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ',') + lastThree
    return res
  }

【问题讨论】:

  • 你能解释一下"after some character length"是什么意思吗?你想每次都增加逗号之间的间隔吗,比如从 1 个字符开始,然后是 2 个字符,3 个字符等等?
  • 您想在逗号之间插入位数越来越多的逗号吗?就像122333444455555666666 的输入一样,您是否期望1,22,333,4444,55555,666666 的输出

标签: javascript function


【解决方案1】:

你也可以试试这个:

testCase = '123433444455555';

let convert = ([...x]) => {
  let i = 1, subStrings = [];

  while (x.length) {
    subStrings.push(x.splice(0, i).join(""));
    i += 1;
  }

  return subStrings.join(",")
}

let result = convert(testCase);
console.log(result);

利用Array.splice,我们将创建一个长度增加的子字符串的中间数组。如果您尝试拼接超过当前长度,Splice 将返回整个字符串。

一旦数字被适当地分割,我们只需将其与, 连接并返回结果。

【讨论】:

    【解决方案2】:

    您可以执行以下操作,

    a = '123433444455555';
    
    const convert = (str) => {
      let step = 1;
      let end = 0;
      while(end + step < str.length -1) {
        str = [str.slice(0, end+step), ',', str.slice(end+step)].join('');
        step++;
        end = end + step;
      }
      return str;
    }
    let ret = convert(a);
    console.log(ret);

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 2010-10-17
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 2018-03-30
      • 2020-01-31
      相关资源
      最近更新 更多