【数字货币转化为中文货币】

【数字货币转化为中文货币】,第1张

数字货币转化为中文货币 注意1.代码如下 总结


注意

regexp表达式中“零”的验证有一点问题,如何有会的人可以告诉我,我就先谢谢了


1.代码如下

代码如下(示例):

<!DOCTYPE html>
<html>
    <head>
        <title>货币转化</title>
        <script>
            function fun(){
                var str = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
                var ste = new Array("角","分","厘");
                var atr = new Array("拾","佰","仟","万","拾万","佰万","仟万","亿","拾忆","佰亿","仟亿","兆");
                var array = new Array();
                var array1 = new Array();
                var str_1 = new Array();
                var str_2 = new Array();
                var str_3 = new Array();
                var str_4 = new Array();

                var re = /\./;//正则表达式:判断是否为浮点数
                var txt = document.getElementById("txt").value;
                var num = re.test(txt);

                var num1 = parseInt(txt);//利用math对象将string类型转化为Number类型
                var i;//限制输入整数部分的大小
                for(i=0;Math.floor(num1)!=0;i++){//JavaScript与其他计算机语言计算不同,2/10:0.2 一定要注意用floor方法进行下舍入
                    array[i] = str[Math.floor(num1)%10];
                    num1/=10;
                }
                if(i>=14){
                    return window.alert("整数部分不能超过13位,即14位以下!");
                }
                for(i=array.length-1;i>0;i--){//进行连接
                    array[i] += atr[i-1];
                }
                if(!num){//若是整数,则加“元整”
                    array[0] += "元整";
                }

                if(num){
                    var ber1 = txt.split(re);//split方法按指定“字符”分割,并返回一个(字符串)数组
                    var ber2 = parseInt(ber1[1]);//取出结果
                    var i;
                    for(i=0;Math.floor(ber2)!=0;i++){
                        str_1[i] = str[Math.floor(ber2)%10];
                        ber2/=10;
                    }
                    str_2 = str_1.reverse();//将数组进行颠倒
                    if(i>=4){
                        return alert("只能读取到小数点后三位!");
                    }
                    for(var j=0;j<str_2.length;j++){
                        str_2[j] += ste[j];
                    }
                    array[0] += "元";//不是整数即在整数部分结尾处加“元”
                }
                
                array1 = array.reverse();//颠倒数组
                str_3 = array1.concat(str_2);//将两个数组连接并返回一个数组
                str_4 = str_3.join("");//将数组元素以“指定字符”进行连接,并返回一个字符串
                var part = new RegExp("(([零][\u4e00-\u9fa5][亿万])+)|(([零][\u4e00-\u9fa5])+)","g");//正则表达式
                var part1 = str_4.replace(part,"零");//将满足匹配的字符进行替换
                window.alert("中文货币为:"+part1);//输出
            }
        </script>
    </head>
    <body>
        数字货币:<input type="text" id="txt"/><input type="button" onclick="fun()" value="转换"/>
    </body>
</html>

结果如下:

总结

这就是所有的代码。我英语不太好,其中的变量名称如果理解不清的可以私信我

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/2991837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存