js 金钱转中文大写
如果喜欢,可以点个攒~~
直接上代码
let toMoneyCapital = function(money = 0) { if (typeof money !== 'number') throw Error('Require a number'); let cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'] let cnIntUnits = ['', '拾', '佰', '仟'] let cnIntUnits1 = ['元', '万', '亿']; let cnDecUnits = ['角', '分', '毫', '厘']; let [integer, decimal] = money.toFixed(2).split('.') // 整数部分 let capital = '' let intStrArr = integer.split(/\B(?=(?:\d{4})+$)/g).reverse() for (let i = 0; i < intStrArr.length; i++) { capital = cnIntUnits1[i] + capital let intStr = intStrArr[i].split('').reverse() let countZero = 0 for (let j = 0; j <intStr.length; j++) { let num = intStr[j] if (num === '0') { countZero++ } else { if (countZero > 0) { capital = cnNums[0] + capital countZero = 0 } capital = cnNums[num] + cnIntUnits[j] + capital } } if (countZero > 0) capital = cnNums[0] + capital } capital = capital.replace(/零([万亿])/g, '$1零').replace(/零([万亿])/g, '$1零') .replace(/零+/g, '零') .replace(/(.*)零(元)/g, '$1$2') .replace(/亿万/g, '亿') // 小数部分 let capital2 = '' for (let i = 0; i < decimal.length; i++) { let num = decimal[i] if (num !== '0') { capital2 += cnNums[num] + cnDecUnits[i] } } return capital + (capital2 || '整') }
浙公网安备 33010602011771号