將數字轉換爲中文大寫

將數字轉換爲中文大寫

HTML代碼:

<input type="text" value="" placeholder="阿拉伯數字" οnchange="chineseNumChange(this.value)">
<div id="chineseNumber"></div>

js代碼 :

   var chinese = {
        /*執行方法*/
        init: function (money) {
            var length, list, LenD,
                NList = [], states = 0;
            length = Math.ceil(money.length / 4);
            LenD = length;
            list = chinese.numberSplit(money, length);
            for (var a = 0; a < length; a++, LenD--) {
                var evenList = list[a].split(""),
                    d = evenList.length, name = "",
                    m = 0;
                for (var b = 0, k = evenList.length; b < k; b++, d--) {
                    if (evenList[b] != "0") {
                        name += chinese.chineseNumber(evenList[b]);
                        name += chinese.chineseLength(d);
                        m = -1;
                    } else {
                        if (d != 1) {
                            name += chinese.chineseNumber(evenList[b]);
                        }
                        if (m != -1) {
                            name = name.substring(0, name.length - 1);
                        }
                        m = b;
                    }
                }
                if (name == "") {
                    NList.push(name);
                    if (a != 0) {
                        ++states;
                    }
                } else {
                    if (states > 0 && states != a - 2) {
                        NList.push(name + chinese.chineseUnit(a) + "零");
                    } else {
                        NList.push(name + chinese.chineseUnit(a));
                    }
                    states = 0;
                }
            }
            return NList.reverse().join("");
        },
        /*每四位截取*/
        numberSplit: function (all, len) {
            var numberSplitList = [];
            for (var i = len, k = all.length; i > 0; i--, k -= 4) {
                var j = k - 4;
                if (j < 0) {
                    j = 0;
                }
                numberSplitList.push(all.substring(j, k));
            }
            return numberSplitList;
        },
        chineseNumber: function (ele) {
            var text = "";
            if (ele == "1") {
                text = "壹";
            } else if (ele == "2") {
                text = "貳";
            } else if (ele == "3") {
                text = "叄";
            } else if (ele == "4") {
                text = "肆";
            } else if (ele == "5") {
                text = "伍";
            } else if (ele == "6") {
                text = "陸";
            } else if (ele == "7") {
                text = "柒";
            } else if (ele == "8") {
                text = "捌";
            } else if (ele == "9") {
                text = "玖";
            } else if (ele == "0") {
                text = "零";
            }
            return text;
        },
        chineseUnit: function (len) {
            var unit = "";
            if (len == 0) {
                unit += "";
            } else if (len == 1) {
                unit += "萬";
            } else if (len == 2) {
                unit += "億";
            } else if (len == 3) {
                unit += "萬億";
            } else if (len == 4) {
                unit += "兆";
            } else {
                unit += chinese.chineseUnit(Number(len) - 4);
            }
            return unit;
        },
        chineseLength: function (val) {
            var chineseVal = "";
            if (val == 1) {
                chineseVal += "";
            } else if (val == 2) {
                chineseVal += "拾";
            } else if (val == 3) {
                chineseVal += "佰";
            } else if (val == 4) {
                chineseVal += "仟";
            }
            return chineseVal;

        }
    };
    function chineseNumChange(ele) {
        document.getElementById("chineseNumber").innerHTML = chinese.init(ele);
    }

效果:


發佈了26 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章