數字轉換為漢字大寫形式程式碼例項

antzone發表於2017-04-12

本章節分享一段程式碼例項,它實現了將數字轉換為大寫形式的功能。

這在實際應用中是有需求的,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
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(123));

這個程式碼其實並不是太完善,數字不能是小數。

相關文章