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

Posted zhanglw456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串格式化:数字转成英文格式相关的知识,希望对你有一定的参考价值。

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
}  

以上是关于字符串格式化:数字转成英文格式的主要内容,如果未能解决你的问题,请参考以下文章

excel中日期格式是数字,想转成java的日期格式,遇到了问题

php页面传来三个int型的年,月,日,怎么将三个数字转成日期格式

javaScript 时间转换,将后台返回的时间为一串数字转成正常格式

有没有人知道格式化“缩写”数字的好 javascript 片段?

使用 NumberFormat 格式化数字的 FieldPosition

如何在EXCEL中将字符转成日期 如19970828转成1997-08-28