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遍历Json的两种数据结构的实现代码
Jan 19 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
Feb 26 Javascript
jquery.map()方法的使用详解
Jul 09 Javascript
RequireJS多页面应用实例分析
Jun 29 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 Javascript
jquery实现网站列表切换效果的2种方法
Aug 12 Javascript
jQuery实现select模糊查询(反射机制)
Jan 14 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
Feb 19 Javascript
js实现鼠标跟随运动效果
Aug 02 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
Feb 22 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
jQuery 动画与停止动画效果实例详解
May 19 jQuery
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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
php session应用实例 登录验证
2009/03/16 PHP
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
vue debug 二种方法
2018/09/16 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
python生成ppt的方法
2018/06/07 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
销售实习自我鉴定
2013/12/07 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
岗位聘任书范文
2014/03/29 职场文书
感恩教育月活动总结
2014/07/07 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
高考1977观后感
2015/06/04 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
python中的None与NULL用法说明
2021/05/25 Python
一文简单了解MySQL前缀索引
2022/04/03 MySQL
如何在Python中妥善使用进度条详解
2022/04/05 Python