• JavaScript的小写转大写(原创)


    其实说原创也是往自己脸上贴金了,实际是根据网上搜集的一些东西改写的而已。因为工作需要的原因,在网上找了些JS的小写金额转大写金额的代码,感觉都不是很理想。所以根据一段VBScript的脚本自己改写成JavaScript的脚本,并做了一小点修正。具体代码如下:
     1 function NumToBig(num) 
     2 
     3     if(isNaN(num)) 
     4     { 
     5         alert('请检查小写金额是否正确!'); 
     6         return
     7     } 
     8     else
     9     {
    10         //保留两位有效数字
    11        num = Math.round(num*Math.pow(10,2))/Math.pow(10,2);
    12     }
    13     var NumStr = String(num);
    14     var NumChar = '零壹贰叁肆伍陆柒捌玖'
    15     var UnitChar1 = ' 拾佰仟 拾佰仟 拾佰仟 拾佰仟'
    16     var UnitChar2 = ' 万亿兆'
    17     var Len; 
    18     var LeftLen,LeftStr; 
    19     var RightLen,RightStr; 
    20     var BigStr = ''
    21     Len = NumStr.length; 
    22     //根据小数点分割字符串
    23     if(NumStr.indexOf('.')==-1)//没有小数 
    24     { 
    25         LeftStr = NumStr; 
    26         LeftLen = Len; 
    27         RightStr = ''
    28         RightLen = 0
    29     } 
    30     else
    31     { 
    32         LeftStr = (NumStr.split('.'))[0]; 
    33         LeftLen = LeftStr.length; 
    34         RightStr = (NumStr.split('.'))[1]; 
    35         RightLen = RightStr.length; 
    36     } 
    37     //转换整数部分
    38     for(var i=0;i<LeftLen;i++)
    39     {
    40         //按位取小写数字
    41         var LeftTempNum = parseInt(LeftStr.substring(i,i+1));
    42         //转换成大写
    43         var LeftTempStr = NumChar.substring(LeftTempNum,LeftTempNum+1);
    44         //数字位为零且不是一位数
    45         if(TempStr=='' && LeftLen!=1)
    46         {
    47             //下一位数字为零或者为万(个)位
    48             if(LeftStr.substring(i+1,i+2)=='0' || (LeftLen-i)%4==1)
    49             {
    50                 LeftTempStr = '';
    51             }
    52         }
    53         else
    54         {
    55             //加上读的单位,拾佰仟之类的
    56             LeftTempStr += UnitChar1.substring(LeftLen-i-1,LeftLen-i).replace(' ','');
    57         }
    58         //万位或个位
    59         if((LeftLen-i)%4==1)
    60         {
    61         LeftTempStr += UnitChar2.substring(parseInt((LeftLen-i)/4),parseInt((LeftLen-i)/4)+1);
    62             if(i>2)
    63             {
    64                 if(LeftStr.substring(i-3,i+1)=='0000')
    65                 {
    66                     LeftTempStr = TempStr.substring(0,LeftTempStr.length-1);
    67                 }
    68             }
    69         }
    70         BigStr += LeftTempStr.replace(' ','');
    71     }
    72     //处理小数部分
    73     if(RightLen==0
    74     { 
    75         BigStr += '元整'
    76     }
    77     else
    78     {
    79         BigStr += '';
    80         for(var i=0;i<RightLen;i++)
    81         {
    82             //按位取小写数字
    83             var RightTempNum = parseInt(RightStr.substring(i,i+1));
    84             //转换成大写
    85             var RightTempStr = NumChar.substring(RightTempNum,RightTempNum+1);
    86             if (i==0)
    87             {
    88                 RightTempStr+="";
    89             }
    90             if (i==1)
    91             {
    92                 RightTempStr+="";
    93             }
    94             BigStr += RightTempStr;
    95         }
    96     }
    97     return BigStr;
    98 }
  • 相关阅读:
    vue (v-if show 问题)
    vue 打包成 apk 文件(修改路径)
    移动端meta几个值的设置以及含义
    vue-cli 搭建
    call() 和 apply() 的作用和区别
    关于闭包的理解
    js的style和getArribute("属性名")
    vue的生命周期
    css3新特性选择器(补充)
    css3的新特性选择器-------属性选择器
  • 原文地址:https://www.cnblogs.com/figo/p/935655.html
Copyright © 2020-2023  润新知