• javascript数字转汉字中文数字


    /*
        工具包
    */
    var Utils={
        /*
            单位
        */
        units:'个十百千万@#%亿^&~',
        /*
            字符
        */
        chars:'零一二三四五六七八九',
        /*
            数字转中文
            @number {Integer} 形如123的数字
            @return {String} 返回转换成的形如 一百二十三 的字符串             
        */
        numberToChinese:function(number){
            var a=(number+'').split(''),s=[],t=this;
            if(a.length>12){
                throw new Error('too big');
            }else{
                for(var i=0,j=a.length-1;i<=j;i++){
                    if(j==1||j==5||j==9){//两位数 处理特殊的 1*
                        if(i==0){
                            if(a[i]!='1')s.push(t.chars.charAt(a[i]));
                        }else{
                            s.push(t.chars.charAt(a[i]));
                        }
                    }else{
                        s.push(t.chars.charAt(a[i]));
                    }
                    if(i!=j){
                        s.push(t.units.charAt(j-i));
                    }
                }
            }
            //return s;
            return s.join('').replace(/零([十百千万亿@#%^&~])/g,function(m,d,b){//优先处理 零百 零千 等
                b=t.units.indexOf(d);
                if(b!=-1){
                    if(d=='亿')return d;
                    if(d=='万')return d;
                    if(a[j-b]=='0')return '零'
                }
                return '';
            }).replace(/零+/g,'零').replace(/零([万亿])/g,function(m,b){// 零百 零千处理后 可能出现 零零相连的 再处理结尾为零的
                return b;
            }).replace(/亿[万千百]/g,'亿').replace(/[零]$/,'').replace(/[@#%^&~]/g,function(m){
                return {'@':'十','#':'百','%':'千','^':'十','&':'百','~':'千'}[m];
            }).replace(/([亿万])([一-九])/g,function(m,d,b,c){
                c=t.units.indexOf(d);
                if(c!=-1){
                    if(a[j-c]=='0')return d+'零'+b
                }
                return m;
            });
        }
    };
     
    

    使用方法:

    <script>
    Utils.numberToChinese(30000)
    </script>
    

    原文:http://www.codepearl.com/files/83.html

      

  • 相关阅读:
    wavecom短信猫发送短信失败
    中美教育之差异
    Linux系统管理员成长经验:十一大工作心得
    帮忙哈
    用linux命令分析文件-排序-统计(sort, uniq, awk)
    【u202】家庭作业
    【u107】数字游戏(bds)
    【u104】组合数
    【u105】路径计数2
    【u022】车的放置
  • 原文地址:https://www.cnblogs.com/jh1994/p/5012168.html
Copyright © 2020-2023  润新知