JS版数字转中文货币金额大写

在CSDN回复的一个帖子!JS里将数字转换为中文的货币大写模式!

<script language="javascript">
function i2c(n){
 if(typeof(n) == "number"){
  if(-1 == n.toString().indexOf(".")){
   return seti2c(n);
  }else{
   var i,istr,f,fstr,a,rstr;
   a = n.toString().split(".");
   i = a[0];
   f = a[1];
   istr = seti2c(i);
   fstr = setf2c(f);
   rstr = istr+fstr;
   rstr = rstr.replace(/^圆/,"");
   return rstr;
  }
 }else{
  return "---";
 }
}

function seti2c(n){
 var ns = n.toString();
 var tempstr = "";
 for(var i=1;i<ns.length+1;i++){
  switch(i){
   case 1:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"圆"+tempstr;
    }else{
     tempstr = "圆"+tempstr;
    }
    break;
   case 2:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"拾"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 3:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"佰"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 4:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"仟"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 5:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"万"+tempstr;
    }else{
     tempstr = "万"+tempstr;
    }
    break;
   case 6:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"拾"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 7:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"佰"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 8:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"仟"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 9:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"亿"+tempstr;
    }else{
     tempstr = "亿"+tempstr;
    }
    break;
   case 10:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"拾"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 11:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"佰"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   case 12:
    var t = ns.substr(ns.length-i,1);
    if(t!="0"){
     tempstr = t+"仟"+tempstr;
    }else{
     tempstr = "0"+tempstr;
    }
    break;
   default:break;
  }
 }
 return g2b(tempstr);
}

function setf2c(n){
 var ns = n.toString();
 var tempstr = "";
 for(var i=0;i<ns.length;i++){
  switch(i){
   case 0:
    var t = ns.substr(i,1);
    if(t!="0"){
     tempstr += t+"角";
    }else{
     tempstr += "0";
    }
    break;
   case 1:
    var t = ns.substr(i,1);
    if(t!="0"){
     tempstr += t+"分";
    }
    break;
   default:break;
  }
 }
 return g2b(tempstr);
}

function g2b(s){
 rs = s.replace(/0+/g,"0");
 rs = rs.replace(/0(圆|万|亿)/g,"$1");
 rs = rs.replace("亿万","亿");
 rs = rs.replace(/0/g,"零");
 rs = rs.replace(/1/g,"壹");
 rs = rs.replace(/2/g,"贰");
 rs = rs.replace(/3/g,"叁");
 rs = rs.replace(/4/g,"肆");
 rs = rs.replace(/5/g,"伍");
 rs = rs.replace(/6/g,"陆");
 rs = rs.replace(/7/g,"柒");
 rs = rs.replace(/8/g,"捌");
 rs = rs.replace(/9/g,"玖");
 return rs;
}

document.write(i2c(2334210001.04));
</script>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值