• 将阿拉伯数字转换为大写


    <!DOCTYPE html>
    <html lang="zh">
    <head>
    	<meta charset="UTF-8" />
    	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
    	<meta http-equiv="X-UA-Compatible" content="ie=edge" />
    	<title>数字转换为大写</title>
    </head>
    <body>
    	 <div> 
            <input type="text" id="sourcetxt" /><br />
            <input type="button" onclick="NumConvert()" id="converbtn"  value="数字大写转换"/> <br />
            <input type="text" id="targettxt" />
        </div>
        <script>
            function NumConvert() {
                try {
                    var numtxt = document.getElementById("sourcetxt").value;
                    var result = Arabia_To_SimplifiedChinese(numtxt);
                    document.getElementById("targettxt").value = result;
    
                } catch (e) {
                    alert(e);
                }
            }
            
        </script>
        <script>
        	//阿拉伯数字转换为简写汉字
    function Arabia_To_SimplifiedChinese(Num) {
        for (i = Num.length - 1; i >= 0; i--) {
            Num = Num.replace(",", "")//替换Num中的“,”
            Num = Num.replace(" ", "")//替换Num中的空格
        }    
        if (isNaN(Num)) { //验证输入的字符是否为数字
            //alert("请检查小写金额是否正确");
            return;
        }
        //字符处理完毕后开始转换,采用前后两部分分别转换
        part = String(Num).split(".");
        newchar = "";
        //小数点前进行转化
        for (i = part[0].length - 1; i >= 0; i--) {
            if (part[0].length > 10) {
                //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;
            }
            newchar = tmpnewchar + newchar;
        }   
        //替换所有无用汉字,直到没有此类无用的数字为止
        while (newchar.search("零零") != -1 || newchar.search("零亿") != -1 || newchar.search("亿万") != -1 || newchar.search("零万") != -1) {
            newchar = newchar.replace("零亿", "亿");
            newchar = newchar.replace("亿万", "亿");
            newchar = newchar.replace("零万", "万");
            newchar = newchar.replace("零零", "零");      
        }
        //替换以“一十”开头的,为“十”
        if (newchar.indexOf("一十") == 0) {
            newchar = newchar.substr(1);
        }
        //替换以“零”结尾的,为“”
        if (newchar.lastIndexOf("零") == newchar.length - 1) {
            newchar = newchar.substr(0, newchar.length - 1);
        }
        return newchar;
    }
        </script>
    </body>
    </html>
    

      

  • 相关阅读:
    Codeforces Round #644 (Div. 3) A~G
    西安邮电大学第五届ACM-ICPC校赛(同步赛) B(拓扑排序)
    Codeforces Round #642 (Div. 3)A~D
    Codeforces Round #641 (Div. 2)A~D
    Codeforces Round #634 (Div. 3)A~E
    Educational Codeforces Round 85 (Rated for Div. 2)ABCD
    Codeforces Round #631 (Div. 2) ABD
    Codeforces Round #629 (Div. 3) E
    Educational Codeforces Round 84 (Rated for Div. 2) E
    yp训练赛3/21
  • 原文地址:https://www.cnblogs.com/TigerZhang-home/p/7490315.html
Copyright © 2020-2023  润新知