阿拉伯數字轉化為中文大寫
阿新 • • 發佈:2018-12-26
var alabo = function (num) { if (isNaN(Number(num))) { return; }; let tmpnewchar = ''; // 最後結果 let numStr = Number(num).toString().split(".")[0]; // 數字轉化字串 if (/^-/.test(numStr)) { tmpnewchar = '負'; numStr = numStr.replace(/^-/g,''); }; let bigNum = ['億', '萬', '千', '百', '十']; // 定義單位陣列 let bigNumSlice = []; // 定義被擷取後的單位陣列 let sliceStar = numStr.length - 1; // 定義被擷取的位置 let numAry = []; // 定義數字字串分隔成陣列 let change = function (num) { let no = ''; switch (num) { case "0": no = "零"; break; case "1": no = "一"; break; case "2": no = "二"; break; case "3": no = "三"; break; case "4": no = "四"; break; case "5": no = "五"; break; case "6": no = "六"; break; case "7": no = "七"; break; case "8": no = "八"; break; case "9": no = "九"; break; }; return no; }; if (sliceStar > 0) { numAry = numStr.replace(/0+$/g,'').split(""); bigNumSlice = bigNum.slice(-sliceStar); numAry.map(function (value, index) { if (bigNumSlice[index] && change(value) != '零') { tmpnewchar = tmpnewchar + change(value) + bigNumSlice[index] } else { tmpnewchar = tmpnewchar + change(value) }; }); if (/零$/.test(tmpnewchar)) { tmpnewchar = tmpnewchar.replace(/零$/g, ''); }; if (/零+/.test(tmpnewchar)) { tmpnewchar = tmpnewchar.replace(/零+/g, '零'); }; if (/^一十/.test(tmpnewchar)) { tmpnewchar = tmpnewchar.replace(/^一十/g,'十'); }; } else { tmpnewchar = change(numStr) }; return tmpnewchar; };