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自动生成,仅供参考