js数字金额大写转换

//除去千分位

function clearComma(num) {
  if(num&&num!='undefined'&&num!='null'){
  let numS = num;
  numS = numS.toString();
  numS = numS.replace(/,/gi, '');
  return numS;
  }else {
  return num;
  }
}

function countChange(count){
  var APPLIED_AMOUNT = clearComma(count);  //去除千分位后的金额
  var str = digitUppercase(APPLIED_AMOUNT) //大写转换
  console.log(str)  //打印大写金额
}


function digitUppercase(n) {
  var fraction = ['角', '分'];
  var digit = [
  '零', '壹', '贰', '叁', '肆',
  '伍', '陆', '柒', '捌', '玖'
  ];
  var unit = [
  ['元', '万', '亿'],
  ['', '拾', '佰', '仟']
  ];
  var head = n < 0 ? '欠' : '';
  n = Math.abs(n);
  var s = '';
  var index = '';
  for (var i = 0; i < fraction.length; i++) {
    if (n.toString().indexOf('.') > -1) {
      var str = n.toString().split('.')[1]
      var strArr = str.split('');
      if (i == 1) {
        index = strArr[i] ? strArr[i] : 0;
      } else {
        index = Math.floor(n * 10 * Math.pow(10, i)) % 10;
      }
    } else {
      index = Math.floor(n * 10 * Math.pow(10, i)) % 10;
    }
    s += (digit[index] + fraction[i]);
  }
  s = s == '零角零分' ? '整' : s;
  n = Math.floor(n);
  for (var i = 0; i < unit[0].length && n > 0; i++) {
    var p = '';
    for (var j = 0; j < unit[1].length && n > 0; j++) {
      p = digit[n % 10] + unit[1][j] + p;
      n = Math.floor(n / 10);
    }
    s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
  }
  var newWord = head + s.replace(/(零.)*零元/, '元')
  .replace(/(零.)+/g, '零')
  .replace(/^整$/, '零元整');
  if(newWord.charAt(newWord.length-1) == '零'){
  newWord = newWord.slice(0,newWord.length-1)
  }
  return newWord
}

 

posted @ 2021-07-22 10:40  秃头的铲屎官  Views(436)  Comments(0Edit  收藏  举报