js实现万级数字转汉字显示

本文介绍了一个实用的JavaScript函数toChineseNum,该函数能够将阿拉伯数字转换为中文大写形式,支持从零到万级别的数字转换。文章详细解释了实现过程,包括如何处理中文数字中的零、个十百千万等单位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景描述

完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五。

思路解析:

  • 零到九的汉字索引数组
  • 个十百千万的计量单位
  • 数字转为字符串解析,每个十进制有单独的数字表示
  • 对零的处理,重复多个零只读一个,后面无数字的省略零
  • 对超出万计量的重新按照千百十的计量
const toChineseNum = (num) => {
  let dtext=['','十','百','千','万']
  let len=num.toString().length
  let numArr=num.toString().split('')
  let numTxt=''
  const toT=(numIndex)=>{
    const arr=['零','一','二','三','四','五','六','七','八','九']
    return arr[numIndex]
  }
  for(let i=1;i<=len;i++){
    if(len>5&&i<(len-3)){
      if(i==(len-4)){
          numTxt+=numArr[i-1]==0?'':toT(numArr[i-1])
          numTxt+='万'
      }else{
        if((numArr[i-2]==0&&numArr[i-1]==0)||((numArr[i-1]==0)&&(numArr[len-5]==0)&&numArr[i]==0)){
          numTxt+=''
        }else{
          numTxt+=(((numArr[i-1]==0)&&(numArr[len-5]!=0))||(numArr[i]!=0&&numArr[i-1]==0))?'零':(toT(numArr[i-1])+dtext[len-i-4])
      }
    }}else{
      if((numArr[i-1]==0&&i==len)||(numArr[i]==0&&numArr[i-1]==0)){
        numTxt+=''
      }else{
        numTxt+=numArr[i-1]==0?'零':(toT(numArr[i-1])+dtext[len-i])
      }
  }}
  return numTxt
}
复制代码

codepen地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值