金额转换为大写

<script language="JavaScript">

function daxie()
{
  this.values = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
  this.digits = ["", "拾", "佰", "仟"];
}

function daxie.prototype.getdx(num)
{
  if(isNaN(num)) return "";
  var number = Math.round(num*100)/100;
  number = number.toString(10).split('.');
  var integer = number[0];
  var len = integer.length;
  if (len > 12)
    return "数值超出范围!支持的最大数值为 999999999999.99";
  var returnValue = this.bns(integer.slice(-4));
  if (len > 4)
    returnValue = this.bns(integer.slice(-8,-4)) + (integer.slice(-8,-4)!="0000"?"万":"") + returnValue;
  if (len > 8)
    returnValue = this.bns(integer.slice(-12,-8)) + "亿" + returnValue;
  if(returnValue!="")
    returnValue += "圆";
  if(number.length==2)
  {
    var cok = number[1].split('');
    if(returnValue!="" || cok[0]!="0")
      returnValue += this.values[parseInt(cok[0])] + (cok[0]!="0"?"角":"");
    if(cok.length>=2)
      returnValue += this.values[parseInt(cok[1])] + "分";
  }
  if(returnValue!="" && !/分$/.test(returnValue))
    returnValue += "整";
  return returnValue;
}

function daxie.prototype.bns(str)
{
  var num = str.split('');
  var dsl = num.length-1;
  var returnValue = "";
  for (var i=0; i<=dsl; i++)
    returnValue += this.values[parseInt(num[i])] + (num[i]!='0'?this.digits[dsl-i]:"");
  returnValue = returnValue.replace(/零+$/, "").replace(/零{2,}/, "零");
  return returnValue;
}

//


var stmp = "";
var dfs = new daxie();
function nst(t)
{
  if(t.value==stmp) return;
  var ms = t.value.replace(/[^/d/.]/g,"").replace(/(/./d{2}).+$/,"$1");
  var txt = ms.split(".");
  while(//d{4}(,|$)/.test(txt[0]))
    txt[0] = txt[0].replace(/(/d)(/d{3}(,|$))/,"$1,$2");
  t.value = stmp = txt[0]+(txt.length>1?"."+txt[1]:"");
  bbb.value = dfs.getdx(parseFloat(ms));
}

</script>
小写金额:<input type="text" name="aaa" οnkeyup="nst(this)"><br>
大写金额:<input type="text" name="bbb" size=60 readonly>

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值