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 页面载入进度条实现代码
Feb 08 Javascript
jquery ui dialog里调用datepicker的问题
Aug 06 Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 Javascript
js实现简单排列组合的方法
Jan 27 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
Jul 08 Javascript
关于vue.js组件数据流的问题
Jul 26 Javascript
对于Javascript 执行上下文的全面了解
Sep 05 Javascript
vue.js的computed,filter,get,set的用法及区别详解
Mar 08 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
Oct 14 Javascript
vue.config.js常用配置详解
Nov 14 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
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
用js实现in_array的方法
2013/11/05 Javascript
深入探讨前端框架react
2015/12/09 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
js重写方法的简单实现
2016/07/10 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
python多线程分块读取文件
2019/08/29 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
关于环保的建议书400字
2014/03/12 职场文书
3.12植树节活动总结2014
2014/03/13 职场文书
先进班组事迹材料
2014/12/25 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang