使用“,”对数字进行分隔的方法

66 阅读1分钟

一、正则表达式

const regex = new RegExp(`\\B(?=(\\d{ ${interval} })+(?!\\d))`, 'g')
num.replace(regex, ',')

二、自己封装实现函数

  formatNumber(step, interval) {
    let start = this.num.length - step
    let end = this.num.length

    const times = Math.floor(end / step)
    const remainder = end % step

    let finalNum = []

    if (end < step) {
      finalNum.unshift(this.num)
    } else {
      for (let i = 0; i <= times; i++) {
        if (start >= 0) {
          finalNum.unshift(this.num.slice(start, end))
          end = start
          if (remainder != 0) {
            if (i == times - 1) {
              start = 0
            } else {
              start -= step
            }
          } else {
            start -= step
          }
        }
      }
    }

    return finalNum.join(interval)
  },
formatNumber(3, ',')