文档章节

将货币数字(阿拉伯数字)(小写)转化成中文(大写)

AntMoon
 AntMoon
发布于 2016/03/21 16:32
字数 592
阅读 15
收藏 0

(function($)

var numtochinese=function(Num){

for(var  i= Num.length-1 ;i>=0;i--) {
        Num = Num.replace(",","");//替换tomoney()中的“,”
        Num = Num.replace(" ","");//替换tomoney()中的空格
    }

    Num = Num.replace("¥","");//替换掉可能出现的¥字符
    
    if(isNaN(Num)){
        //验证输入的字符是否为数字
        alert("请检查小写金额是否正确");
        return;
    }
    //---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
    part = String(Num).split(".");
    newchar = "";    
    //小数点前进行转化
    for(i=part[0].length-1;i>=0;i--) {
        if(part[0].length > 12){ alert("位数过大,无法计算");return "";}//若数量超过拾亿单位,提示
        tmpnewchar = "" ;
        perchar = part[0].charAt(i);
        switch(perchar){
            case "0": tmpnewchar="零" + tmpnewchar ;break;
            case "1": tmpnewchar="壹" + tmpnewchar ;break;
            case "2": tmpnewchar="贰" + tmpnewchar ;break;
            case "3": tmpnewchar="叁" + tmpnewchar ;break;
            case "4": tmpnewchar="肆" + tmpnewchar ;break;
            case "5": tmpnewchar="伍" + tmpnewchar ;break;
            case "6": tmpnewchar="陆" + tmpnewchar ;break;
            case "7": tmpnewchar="柒" + tmpnewchar ;break;
            case "8": tmpnewchar="捌" + tmpnewchar ;break;
            case "9": tmpnewchar="玖" + tmpnewchar ;break;
        }
        switch(part[0].length-i-1) {
            case 0: tmpnewchar = tmpnewchar +"元" ;break;
            case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
            case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
            case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;    
            case 4: tmpnewchar= tmpnewchar +"万" ;break;
            case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
            case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
            case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
            case 8: tmpnewchar= tmpnewchar +"亿" ;break;
            case 9: tmpnewchar= tmpnewchar +"拾" ;break;
            case 10: tmpnewchar= tmpnewchar +"佰" ;break;
            case 11: tmpnewchar= tmpnewchar +"仟" ;break;
        }
        newchar = tmpnewchar + newchar;
    }
    //小数点之后进行转化
    if(Num.indexOf(".")!=-1){
        if(part[1].length > 2) {
            alert("小数点之后只能保留两位,系统将自动截段");
            part[1] = part[1].substr(0,2) ;
        }
        for(i=0;i<part[1].length;i++) {
            tmpnewchar = "" ;
            perchar = part[1].charAt(i) ;
            switch(perchar){
                case "0": tmpnewchar="零" + tmpnewchar ;break;
                case "1": tmpnewchar="壹" + tmpnewchar ;break;
                case "2": tmpnewchar="贰" + tmpnewchar ;break;
                case "3": tmpnewchar="叁" + tmpnewchar ;break;
                case "4": tmpnewchar="肆" + tmpnewchar ;break;
                case "5": tmpnewchar="伍" + tmpnewchar ;break;
                case "6": tmpnewchar="陆" + tmpnewchar ;break;
                case "7": tmpnewchar="柒" + tmpnewchar ;break;
                case "8": tmpnewchar="捌" + tmpnewchar ;break;
                case "9": tmpnewchar="玖" + tmpnewchar ;break;
            }
            if(i==0)tmpnewchar =tmpnewchar + "角";
            if(i==1)tmpnewchar = tmpnewchar + "分";
            newchar = newchar + tmpnewchar;
        }
    }
    //替换所有无用汉字
    while(newchar.search("零零") != -1)
        newchar = newchar.replace("零零", "零");
        newchar = newchar.replace("零亿", "亿");
        newchar = newchar.replace("亿万", "亿");
        newchar = newchar.replace("零万", "万");    
        newchar = newchar.replace("零元", "元");
        newchar = newchar.replace("零角", "");
        newchar = newchar.replace("零分", "");

        if (newchar.charAt(newchar.length-1) == "元" || newchar.charAt(newchar.length-1) == "角")
            newchar = newchar+"整" ;
            return newchar;

}

})(jQuery)

© 著作权归作者所有

AntMoon
粉丝 0
博文 19
码字总数 4923
作品 0
津南
私信 提问
java简单算法总结

1、翻转字符串 function reverseString(str) { }reverseString("hello"); 2、阶乘算法 public static int factorialize(int num) { } else { } } public static void main(String[] args......

晚天吹凉风
2017/12/18
16
0
ul li -- list-style-type 样式用法

list-style-type的用法 语法: list-style-type : disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none | armenian | cjk-ideographic | geo......

山哥
2011/09/16
229
0
python 3 ---字符串方法使用整理

一、编码部分(结合执行结果进行理解) name = "my tname is {name} and i am {year} old"print(name.capitalize()) 首字母大写 print(name.center(50,"-")) 打印50个字符,不够的用-补齐,并......

Mr_chen
2017/12/15
0
0
字符串的小方法

本博文包含upper()、lower()、isupper()、islower()、isX、startswith()、endswith()、join()、split()、 upper(),lower():将字符串中所有字母转化为大写和小写,其他字符不变。isupper(),i...

v_fanyunxiao
2017/08/24
0
0
HTML中显示特殊字符,如尖括号 “"

如下面的html代码: <body> 显示:<input id="myTest" type="text" value="5<=6" ></input> </body> 上面的value属性值中含有“<”,浏览器可能会正常显示,但是在解析的时候可能就会出错。 ......

zGA
2015/01/30
6.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

Phpstorm2018 永久激活

1、安装phpstorm,安装包请自行官网下载 http://www.jetbrains.com/phpstorm/download/ 2、下载JetbrainsCrack.jar文件,存放至你的phpstorm执行文件同级目录下 下载JetbrainsCrack.jar 提取...

happyfish319
45分钟前
9
0
谈一谈Android进程间通信的几种方式

###来看一下Android中除了AIDL还有哪些进程间通信的方式: 1、Bundle Bundle实现了Parcelable,所以在Android中我们可以通过Intent在不同进程间传递Bundle数据。 但是在Intent 传输数据的过程...

二营长的意大利炮手
46分钟前
9
0
互联网薪资“高开低走”,你的能力是否真的可以匹配高薪?

对于国内外主流互联网大厂,技术出身似乎已经成为各大掌门人的必备标签。谷歌 CEO 桑达尔·皮查伊、马克·扎克伯格、李彦宏、马化腾、雷军等等皆为技术人出身,都曾参与了公司内部重要产品的...

Java技术剑
47分钟前
12
0
java 多线程

线程声明周期 线程的五个状态:新建,就绪,运行,阻塞,死亡。 其中就绪和运行两个状态客户互相转换,但运行到阻塞,阻塞到就绪,只能单向转换。 刚new出的线程就是【新建】状态,调用start...

雷开你的门
49分钟前
17
0
构造器Constructor是否可被overrid

构造器不能被重写,不能用static修饰构造器,只能用public private protected这三个权限修饰符,且不能有返回语句。

无名氏的程序员
53分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部