數字轉大寫
阿新 • • 發佈:2018-06-25
app lse num right urn div pos nbsp consola
function intToChinese(str) { str = str + ‘‘; var len = str.length - 1; var idxs = [‘‘, ‘十‘, ‘百‘, ‘千‘, ‘萬‘, ‘十‘, ‘百‘, ‘千‘, ‘億‘, ‘十‘, ‘百‘, ‘千‘, ‘萬‘, ‘十‘, ‘百‘, ‘千‘, ‘億‘]; var num = [‘零‘, ‘壹‘, ‘貳‘, ‘叁‘, ‘肆‘, ‘伍‘, ‘陸‘, ‘柒‘, ‘捌‘, ‘玖‘]; return str.replace(/([1-9]|0+)/g, function($, $1, idx, full) { var pos = 0; if($1[0] != ‘0‘) { pos = len - idx; if(idx == 0 && $1[0] == 1 && idxs[len - idx] == ‘十‘) { return idxs[len - idx]; } return num[$1[0]] + idxs[len - idx]; } else { var left = len - idx; var right = len - idx + $1.length; if(Math.floor(right / 4) - Math.floor(left / 4) > 0) { pos = left - left % 4; } if(pos) { return idxs[pos] + num[$1[0]]; } else if(idx + $1.length >= len) { return ‘‘; } else { return num[$1[0]] } } }); }
console.log(intToChinese(12345))
數字轉大寫