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


Posted in Javascript onFebruary 27, 2015

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

考虑到用户的体验,随使用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("-")”的判断。

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

Javascript 相关文章推荐
filemanage功能中用到的common.js
Apr 08 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
Dec 07 Javascript
一个简单的js动画效果代码
Jul 20 Javascript
jQuery $.data()方法使用注意细节
Dec 31 Javascript
浏览器缩放检测的js代码
Sep 28 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
微信小程序 UI与容器组件总结
Feb 21 Javascript
vue里面父组件修改子组件样式的方法
Feb 03 Javascript
JavaScript命名空间模式实例详解
Jun 20 Javascript
使用React代码动态生成栅格布局的方法
May 24 Javascript
Vue-cli 移动端布局和动画使用详解
Aug 10 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 #Javascript
jQuery如何防止这种冒泡事件发生
Feb 27 #Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 #Javascript
JavaScript获取元素尺寸和大小操作总结
Feb 27 #Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
Feb 27 #Javascript
Javascript writable特性介绍
Feb 27 #Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 #Javascript
You might like
如何做到多笔资料的同步
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
js的一些常用方法小结
2011/06/29 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Python 命令行非阻塞输入的小例子
2013/09/27 Python
pygame实现简易飞机大战
2018/09/11 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
Python截图并保存的具体实例
2021/01/14 Python
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
建筑设计学生的自我评价
2014/01/16 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
绿化先进工作者事迹材料
2014/01/30 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python