asp.net+js实现金额格式化

2019-12-18,,,,,

根据用户需求,在输入金额时要格式化,即每三位数字加逗号分隔,并保留两位小数。

考虑到用户的体验,随使用JS对金额进行格式化,前台代码如下:

复制代码 代码如下:
<asp:TextBox ID="txtAmount" runat="server" onkeypress="check()" onkeyup="run(this)"></asp:TextBox>

JS代码如下:

复制代码 代码如下:
//======检查输入的是否为数字
function check() {
    if (!((window.event.keyCode >= 48 && window.event.keyCode <= 57) || window.event.keyCode == 46 || window.event.keyCode == 45)) {
        window.event.keyCode = 0
    }
}
//======格式化文本框的金额
function run(obj) {
    var objvalue = obj.value.replace(/[,]/g, ""),
        objlength = objvalue.length,
        dtmp = objvalue.indexOf("."),
        neg = objvalue.indexOf("-");
    var inttmp = 0,
        floattmp = -1;
    if (dtmp != -1) {
        inttmp = dtmp == 0 ? "0" : new String(objvalue).substring(0, dtmp);
        floattmp = new String(objvalue).substring(dtmp + 1, objlength + 1);
        floattmp = floattmp.replace(/[^0-9]/g, "");
    }
    else {
        inttmp = objvalue;
    }
    if (neg == 0) {
        inttmp = inttmp.replace(/[-]/g, "");
    }
    inttmp = inttmp.replace(/[^0-9]/g, "");
    var tmp = "", str = "0000";
    for (; inttmp.length > 3; ) {
        var temp = new String(inttmp / 1000);
        if (temp.indexOf(".") == -1) {
            tmp = ",000" + tmp;
            inttmp = temp;
        }
        else {
            var le = new String(temp).split(".")[1].length;
            tmp = "," + new String(temp).split(".")[1] + str.substring(0, 3 - le) + tmp;
            inttmp = new String(temp).split(".")[0];
        }
    }
    inttmp = inttmp + tmp;
    obj.value = neg == 0 ? "-" + inttmp + runing(floattmp) : inttmp + runing(floattmp);
}
//======整理小数部分
function runing(val) {
    if (val != "-1" && val != "") {
        var valvalue = 0 + "." + val;
        if (val.length >= 2) {
            valvalue = parseFloat(valvalue).toFixed(2);
        }
        var temp = "." + valvalue.split(".")[1];
        return temp;
    }
    else if (val != "0" && val == "") {
        return ".";
    }
    else {
        return "";
    }
}

同时因为金额可输入负数,所以加上“neg = objvalue.indexOf("-")”的判断。

关于金额的格式化问题,经常遇到这种事情,觉得这个还可以,也就留着,以供以后查阅方便!

您可能感兴趣的文章:

  • JS格式化数字金额用逗号隔开保留两位小数
  • js金额数字格式化实现代码(加减逗号处理)
  • JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
  • js 金额格式化来回转换示例
  • js格式化输入框内金额、银行卡号
  • js格式化金额可选是否带千分位以及保留精度
  • 用js格式化金额可设置保留的小数位数
  • js实现格式化金额,字符,时间的方法
  • JS实现的4种数字千位符格式化方法分享
  • JS格式化数字保留两位小数点示例代码
  • JS数字千分位格式化实现方法总结
  • js实现的格式化数字和金额功能简单示例

《asp.net+js实现金额格式化.doc》

下载本文的Word格式文档,以方便收藏与打印。