首页 > 其他 > 详细

字符串格式化:数字转成英文格式

时间:2020-06-09 16:37:13      阅读:57      评论:0      收藏:0      [点我收藏+]

1

 function formatNumber1 (number) {
    const base = 3

    number = Number(number)  // 只要包含字符 都会转为NaN
    let numberStr = number.toString()  // NaN => ‘NaN‘

    if (numberStr === ‘NaN‘) {
      return ‘0‘
    }

    const isFloat = numberStr.indexOf(‘.‘)>-1

    const floatStr = isFloat ? numberStr.split(‘.‘)[1] : ‘‘
    const intStr = numberStr.split(‘.‘)[0]

    const len = intStr.length

    if (len <= base) {
      return numberStr
    }


    let str = ‘‘
    const m = len % base
    let t = Math.floor(len / base)

    if (m === 0) {
      t--
    }

    for (let i = 0; i<t; i++) {
      str = "," + intStr.substring(len - (i + 1) * base, len - i * base) + str
    }

    str = intStr.substring(0, m ? m : base) + str

    return isFloat ? str + ‘.‘ + floatStr : str
  }

2

 function formatNumber2 (number) {
    const base = 3

    number = Number(number)  // 只要包含字符 都会转为NaN
    let numberStr = number.toString()  // NaN => ‘NaN‘

    if (numberStr === ‘NaN‘) {
      return ‘0‘
    }

    const isFloat = numberStr.indexOf(‘.‘)>-1

    const floatStr = isFloat ? numberStr.split(‘.‘)[1] : ‘‘
    const intStr = numberStr.split(‘.‘)[0]

    const len = intStr.length

    if (len <= base) {
      return numberStr
    }

    let str = ‘‘
    const m = len % base
    let t = Math.floor(len / base)
    let i = 0

    if (m === 0) {
      t--
      for (i; i < t; i++) {
        str += intStr.substring(m + i * base, m + (i + 1) * base) + ‘,‘
      }
    } else {
      str = intStr.substring(0, m) + ‘,‘
      i = 1
      for (i; i < t; i++) {
        str += intStr.substring(m + (i - 1) * base, m + i * base) + ‘,‘
      }
    }

    str += intStr.substring(len - base)

    return isFloat ? str + ‘.‘ + floatStr : str
  }

3

function formatNumber3 (number) {
  number = Number(number)
  let numStr = number.toString()
  if (numStr === ‘NaN‘) {
    return ‘0‘
  }
  const floatStr = numStr.split(‘.‘)[1] ? numStr.split(‘.‘)[1] : ‘‘
  numStr = numStr.split(‘.‘)[0].split(‘‘).reverse().join(‘‘)
  const pattern = /([\S]{3})/g

  numStr = numStr.replace(/\s/, ‘‘).replace(pattern, function (match) {
    return match + ‘,‘
  })
  numStr = numStr.split(‘‘).reverse().join(‘‘)
  if (numStr[0] === ‘,‘) {
    numStr = numStr.substring(1)
  }
  // console.log(numStr);
  return floatStr ? numStr + ‘.‘ + floatStr : numStr
}  

字符串格式化:数字转成英文格式

原文:https://www.cnblogs.com/zhanglw456/p/13073145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!