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

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

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

代码如下:

JS代码如下:

代码如下:
= 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("-")”的判断。

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...