js 数字转汉字
以下是三种不同的实现方法:
方法一:使用数组和对象实现数字转汉字。
function numberToChinese(num) { var units = ['', '十', '百', '千', '万', '十万', '百万', '千万', '亿']; var digits = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九']; var result = ''; var numArray = String(num).split('').reverse(); // 将数字转为倒序的数组 for (var i = 0; i < numArray.length; i++) { var digit = numArray[i]; // 当前位的数字 var unit = units[i]; // 当前位的单位 // 对于0的处理 if (digit === '0') { // 如果是连续的多个0,只保留一个零 if (result[0] === '零') { result = result.substring(1); } // 如果不是最末尾的0,添加一个零 if (i !== numArray.length - 1) { result = '零' + result; } continue; } result = digits[digit] + unit + result; } return result; }
复制
方法二:使用递归实现数字转汉字。
function numberToChinese(num) { var units = ['', '十', '百', '千', '万', '十万', '百万', '千万', '亿']; var digits = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九']; if (num < 10) { return digits[num]; } if (num < 20) { return '十' + digits[num - 10]; } var unitIndex = String(num).length - 1; var unit = units[unitIndex]; return digits[Math.floor(num / Math.pow(10, unitIndex))] + unit + numberToChinese(num % Math.pow(10, unitIndex)); }
复制
方法三:使用正则表达式实现数字转汉字。
function numberToChinese(num) { var units = ['', '十', '百', '千', '万', '十万', '百万', '千万', '亿']; var digits = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九']; var result = String(num).replace(/./g, function(digit, index, array) { return digits[Number(digit)] + units[array.length - index - 1]; }); return result; }
复制
提示:AI自动生成,仅供参考