JavaScript金额数字格式转化成大写格式

gyyh.html

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="gyyh.js"></script>
<script language="javascript">
sl_alert(numToChinese("19876.30"));
sl_alert(numToChinese("19876"));
sl_alert(numToChinese("1000.00"));
</script>
</head>
<body>
<div>
</div>
</body>
</html>

gyyh.js


function numToChinese(input)
{
    var s1 = "零壹贰叁肆伍陆柒捌玖";
    var s4 = "分角整元拾佰仟万拾佰仟亿拾佰仟";
    var temp = "";
    var result = "";
    var bZero = false;

    if (input == null)
        return "输入字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";


    var temp = trim(input);

    var f = parseFloat("0" + temp);
    var len = 0;
    if (temp.indexOf(".") == -1)
        len = temp.length;
    else
        len = temp.indexOf(".");
    if (len > s4.length - 3)
        return "输入字串最大只能精确到仟亿,小数点只能两位!";

    var n1, n2 = 0;
    var num = "";
    var unit = "";

    for (var i = 0; i < temp.length; i++)
    {
        if (i > len + 2)
        {
            break;
        }
        if (i == len)
        {
            continue;
        }
        n1 = parseInt(temp.charAt(i));
        num = s1.substring(n1, n1 + 1);
        n2 = len - i + 2;
        unit = s4.substring(n2, n2 + 1);
        result = result + num + unit;
    }
    if ((len == temp.length) || (len == temp.length - 1))
        result = result+ "整";
    if (len == temp.length - 2)
        result = result + "零分";

    result = trimZero(result);
    return result;
}

function trimZero(s)
{
    var result = s, s1;
    var n1 = 0, n2 = 0;
    s1 = s;

    n1 = s1.indexOf("零仟零佰零拾零万");
    while (n1 > 0)
    {
        result = s1.substring(0, n1) + s1.substring(n1 + 8);
        s1 = result;        
        n1 = s1.indexOf("零仟零佰零拾零万");
    }   
    n1 = s1.indexOf("零拾");

    while (n1 > 0)
    {
        result = s1.substring(0, n1) + s1.substring(n1 + 2);
        s1 = result;
        n1 = s1.indexOf("零拾");
    }
    n1 = s1.indexOf("零佰");
    while (n1 > 0)
    {
        result = s1.substring(0, n1) + s1.substring(n1 + 2);
        s1 = result;
        n1 = s1.indexOf("零佰");
    }
    n1 = s1.indexOf("零仟");
    while (n1 > 0)
    {
        result = s1.substring(0, n1) + s1.substring(n1 + 2);
        s1 = result;
        n1 = s1.indexOf("零仟");
    }
    n1 = s1.indexOf("零元");
    while (n1 > 0)
    {
        result = s1.substring(0, n1) + s1.substring(n1 + 1);
        s1 = result;
        n1 = s1.indexOf("零元");
    }
    n1 = s1.indexOf("零角");
    while (n1 > 0)
    {
        result = s1.substring(0, n1) + s1.substring(n1 + 2);
        s1 = result;
        n1 = s1.indexOf("零角");
    }
    n1 = s1.indexOf("零分");
    while (n1 > 0)
    {
        result = s1.substring(0, n1) + s1.substring(n1 + 2);
        s1 = result;
        n1 = s1.indexOf("零分");
    }
    n1 = s1.indexOf("零万");
    while (n1 > 0)
    {
        if (s1.substring(0, n1).length > 0)
            result = s1.substring(0, n1) + s1.substring(n1 + 1);
        else
            result = s1.substring(0, n1) + s1.substring(n1 + 2);
        s1 = result;
        n1 = s1.indexOf("零万");
    }   
    n1 = s1.indexOf("零亿");
    while (n1 > 0)
    {
        if (s1.substring(0, n1).length > 0)
            result = s1.substring(0, n1) + s1.substring(n1 + 1);
        else
            result = s1.substring(0, n1) + s1.substring(n1 + 2);
        s1 = result;
        n1 = s1.indexOf("零亿");
    }
    return result;
}

function trim(s)
{
    while (s.substring(0,1) == ' ')
    {
        s = s.substring(1,s.length);
    }
    while (s.substring(s.length-1,s.length) == ' ')
    {
        s = s.substring(0,s.length-1);
    }
    return s;
}
function sl_alert(errinfo, url)
{
    alert("系统提示:\n\n" + errinfo + "\n\n"); 
    if (url != null)
        location.replace(url);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生活中的思索

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值