首页 > 解决方案 > 将数字分成 3 位数字组,其余为 2 位数字

问题描述

我想使用 JavaScript 和正则表达式将 7 位数字拆分为一组 3 位数字,其余为一组 2 这是我拥有的正则表达式

let foo = 1234567; 
foo.match(([\d.]{3})([\d.]{2})([\d.]{2}))

我期待一个格式如下的数组:[123,45,67]

标签: javascriptregex

解决方案


您基本上拥有它,您只需使用toString()or将数字转换为字符串String(foo)。然后shift()是列表中的第一项

let foo = 1234567; 
let matches = foo.toString().match(/([\d.]{3})([\d.]{2})([\d.]{2})/)
matches.shift()

// Use `.map(Number)` to convert the values back to numbers
console.log(matches.map(Number))

我们还可以使用 slice 3 次来抓取字符串的不同部分,如下所示:

let foo = String(1234567)

console.log([
  foo.slice(0,3),
  foo.slice(3,5),
  foo.slice(5,7)
].map(Number))


推荐阅读