java-ren
Google   
全球搜索      JAVA-REN.COM
联系站长
收藏本站
 您现在的位置:首页 >> javascript >> JS中数字金额转大写
JS中数字金额转大写
JS中数字金额转大写
作者:不明  来源:不明  发表时间:2007-11-10  点击数:  

<html>
<script language="javascript">
//将阿拉伯数字翻译成中文的大写数字
function moneyToCapital(formName,sourceId,targetId) 
{
 var source=document.forms[formName].all[sourceId];
 var target=document.forms[formName].all[targetId];
 var num=source.value;
 
    if(!/^\d*(\.\d*)?$/.test(num)) throw(new Error(-1, "Number is wrong!"));

    var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
    var BB = new Array("","拾","佰","仟","?","?","圆","");
    var CC = new Array("角", "分", "厘");
   
    var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";

    for(var i=a[0].length-1; i>=0; i--)  //author: meizz
    {
        switch(k)
        {
            case 0 : re = BB[7] + re; break;
            case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0]))
                     re = BB[4] + re; break;
            case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
        }
        if(k%4 == 2 && a[0].charAt(i)=="0" && a[0].charAt(i+2) != "0") re = AA[0] + re;
        if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
    }

    if(a.length>1) //加上小数部分(如果有小数部分)
    {
        re += BB[6];
        for(var i=0; i<a[1].length; i++)
        {
          re += AA[a[1].charAt(i)] + CC[i];
          if(i==2) break;
        }
    }
   // return re;
 target.value= re ;
}

</script>
<form name="form1" action="" method="post">
<input type="text" name="a" id="a" onblur="moneyToCapital('form1','a','b')" onkeyup="moneyToCapital('form1','a','b')">
<input type="text" name="b" id="b" value="">
</form>
</html>

评论: