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 相关文章推荐
javascript window.opener的用法分析
Apr 07 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
May 10 Javascript
javascript对select标签的控制(option选项/select)
Jan 31 Javascript
Javascript中Event属性搜集整理
Sep 17 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 Javascript
javascript模拟命名空间
Apr 17 Javascript
JS查找字符串中出现最多的字符及个数统计
Feb 04 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
Feb 03 Javascript
Vue底层实现原理总结
Feb 17 Javascript
详解vue中async-await的使用误区
Dec 05 Javascript
jQuery Migrate 插件用法实例详解
May 22 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
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
php xfocus防注入资料
2008/04/27 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
php 常用的系统函数
2017/02/07 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
Django如何将URL映射到视图
2019/07/29 Python
python实现图像拼接功能
2020/03/23 Python
jupyter 导入csv文件方式
2020/04/21 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
营销计划书范文
2015/01/17 职场文书
雷锋的观后感
2015/06/10 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
MySQL去除密码登录告警的方法
2022/04/20 MySQL
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python