将字符串拆分为多个部分的操作

时间:2019-03-04 07:25:15

标签: javascript

我想在得到字符串123456789后显示类型为123 456789。我使用了如下所示的方法,但我认为这不是一个好方法,所以有人有更好的方法吗?

let num = '123456789'
let result = num.slice(0,3)+ ' '+num.slice(3,6)+ ' '+num.slice(6,9) // result = '123 456 789'

3 个答案:

答案 0 :(得分:6)

您可以使用全局正则表达式和match 3位数字,然后用空格连接:

let num = '123456789';
const result = num
  .match(/\d{3}/g)
  .join(' ');
console.log(result);

或者,用.replace并向前查找另一个数字:

let num = '123456789';
const result = num.replace(/\d{3}(?=\d)/g, '$& ');
console.log(result);

答案 1 :(得分:0)

您可以使用while循环和slice()

let str = '123456789';
function splitBy(str,num){
  let result = '';
  while(str.length > num){
    result += str.slice(0,3) + ' ';
    str = str.slice(3);
  }
  return result + str;
}
console.log(splitBy(str,3));

答案 2 :(得分:0)

您可以使用 Array.from() 根据提供的拆分长度返回一组块。然后使用join()将它们串联起来

let num = '123456789'

function getChunks(string, n) {
  const length = Math.ceil(string.length / n);
  return Array.from({ length }, (_, i) => string.slice(i * n, (i + 1) * n))
}

console.log(getChunks(num, 3).join(' '))
console.log(getChunks(num, 4).join(' '))