漢数字変換

英数字を漢数字に変換します。

英数字:
漢数字(桁考慮あり):
漢数字(桁考慮なし):

Script解説
正規表現と配列をふんだんに盛り込んだScriptです。
と、桁を考慮したほうは大分複雑になりましたが、もっとシンプルな方法があるかもしれないです。

桁は「京」まで対応してますが、それ以上にも対応したい場合、
  var keta_str2 = ":万億兆京".match(/./g);
の部分に追加していってください。

以下Script
  //桁考慮あり
  function num2kanji(val){
    var kanji_str = ":一二三四五六七八九".match(/./g);
    var keta_str  = ":十百千".match(/./g);
    var keta_str2 = ":万億兆京".match(/./g);
    var i,j;
    if (val==0) return "零";
    val = val+"";
    val = val.match(/./g).reverse().join("");
    val = val.replace(/(\d{4})/g,"$1,").replace(/\,$/,"").split(",");
    for (i=0;i<val.length;i++){
      var str = "";
      for (j=val[i].length-1;0<=j;j--){
        str += kanji_str[val[i].charAt(j)] + keta_str[j];
      }
      str = str.replace(/:./g,"")+keta_str2[i];
      if (str.length==1) str="";
      val[i] = str.replace(/:/g,"");
      val[i] = val[i].replace(/一(百)|一(十)/g,"$1$2");
    }
    val = val.reverse().join("");
    return val;
  }
  
  //桁考慮なし
  function num2kanji2(val){
    var kanji_str = "〇一二三四五六七八九".match(/./g);
    val = val + "";
    val = val.replace(/(.)/g,"kanji_str[$1]+").replace(/\+$/,"");
    return eval(val);
  }
  

漢数字変換
WebSite :JavaScriptの部屋別館
E-Mail   :blaze@gol.com
最終更新日 :2001/07/08