首页 前端知识 js 数字转汉字

js 数字转汉字

2024-05-08 10:05:01 前端知识 前端哥 852 377 我要收藏

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

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7413.html
标签
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!