JavaScript 阿拉伯转汉字
function numberToChinese(num) { const units = ['', '十', '百', '千', '万']; const digits = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九']; const bigUnits = ['', '万', '亿', '兆']; let result = ''; let numStr = num.toString() let numLen = numStr.length; let hasZero = false; // 是否有连续的0 let zeroCount = 0 for (let i = 0; i < numLen; i++) { let digit = Number(numStr[i]); const pos = numLen - i let unit = units[(pos - 1) % 4]; if (digit === 0) { hasZero = true; zeroCount++ } else { if (hasZero) { result += '零'; hasZero = false; zeroCount = 0 } result += digits[digit] + unit; } // 处理大单位 if (zeroCount !== 4 && pos > 4 && (pos - 1) % 4 === 0) { let bigUnit = bigUnits[Math.floor(pos / 4)]; result += bigUnit; zeroCount = 0 } } return result; } console.log(numberToChinese(1234)); // 一千二百三十四 console.log(numberToChinese(10000)); // 一万 console.log(numberToChinese(10001)); // 一万零一 console.log(numberToChinese(100000000)); // 一亿 console.log(numberToChinese(123456789)); // console.log(numberToChinese(1000100001)); //
注意点
- 注意量词的使用
- 注意连续零和末尾零的处理
- 超过4位,需要处理大单位
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 字符串转数字
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论