Convert multiple lowercase numbers to uppercase numbers sequentially

Don’t talk too much, don’t chatter, go directly to the code

function NoToChinese(num: string) {
    if (!/^\d*(\.\d*)?$/.test(num)) {
      console.log('Number is wrong!')
      return 'Number is wrong!'
    }
    var AA = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
    var BB = ['', '十', '百', '千', '万', '亿', '点', '']
    var a = ('' + num).replace(/(^0*)/g, '').split('.'),
      k = 0,
      re = ''
    for (var i = a[0].length - 1; i >= 0; i--) {
      switch (k) {
        case 0:
          re = BB[7] + re
          break
        case 4:
          if (!new RegExp('0{4}\\d{' + (a[0].length - i - 1) + '}$').test(a[0])) re = BB[4] + re
          break
        case 8:
          re = BB[5] + re
          BB[7] = BB[5]
          k = 0
          break
      }
      if (k % 4 == 2 && a[0].charAt(i + 2) != '0' && a[0].charAt(i + 1) == '0') re = AA[0] + re
      if (a[0].charAt(i) != '0') re = AA[a[0].charAt(i)] + BB[k % 4] + re
      k++
    }
    if (a.length > 1) {
      //加上小数部分(如果有小数部分)
      re += BB[6]
      for (var n = 0; n < a[1].length; n++) re += AA[a[1].charAt(n)]
    }
    let ar = re.split('')
    if (ar[0] + ar[1] == '一十') {
      ar.splice(0, 1)
      re = ar.join('')
    }
    return re
  }

Guess you like

Origin blog.csdn.net/weixin_61964186/article/details/129436324