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 相关文章推荐
jquery操作cookie插件分享
Jan 14 Javascript
后台获取ZTREE选中节点的方法
Feb 12 Javascript
javascript实现框架高度随内容改变的方法
Jul 23 Javascript
JavaScript性能优化之小知识总结
Nov 20 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
Oct 26 Javascript
JS无限级导航菜单实现方法
Jan 05 Javascript
vue将后台数据时间戳转换成日期格式
Jul 31 Javascript
微信小程序 授权登录详解(附完整源码)
Aug 23 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 Javascript
JS猜数字游戏实例讲解
Jun 30 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
php下使用SMTP发邮件的代码
2008/01/10 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
2011/07/26 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
Python装饰器使用示例及实际应用例子
2015/03/06 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
使用Python进行目录的对比方法
2018/11/01 Python
详解django自定义中间件处理
2018/11/21 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
学生思想表现的评语
2014/01/30 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
基层党员对照检查材料
2014/09/24 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
民事二审代理词
2015/05/25 职场文书
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
Python3的进程和线程你了解吗
2022/03/16 Python