前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js实现万级数字转汉字显示

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

作者头像
RobinsonZhang
发布2018-08-28 13:02:35
9.9K1
发布2018-08-28 13:02:35
举报

场景描述

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

思路解析: – 零到九的汉字索引数组 – 个十百千万的计量单位 – 数字转为字符串解析,每个十进制有单独的数字表示 – 对零的处理,重复多个零只读一个,后面无数字的省略零 – 对超出万计量的重新按照千百十的计量

代码语言:javascript
复制
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地址

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景描述
  • codepen地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档