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获取样式中的背景颜色属性值/颜色值
Dec 17 Javascript
jQuery setTimeout()函数使用方法
Apr 07 Javascript
基于dom编程中 动态创建与删除元素的使用
Apr 17 Javascript
纯JS代码实现气泡效果
May 04 Javascript
javascript匀速动画和缓冲动画详解
Oct 20 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
Dec 01 Javascript
BootStrap 模态框实现刷新网页并关闭功能
Jan 04 Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 Javascript
Vue起步(无cli)的啊教程详解
Apr 11 Javascript
详解wepy开发小程序踩过的坑(小结)
May 22 Javascript
微信小程序基于高德地图查找位置并显示文字
Oct 30 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
Oct 21 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在字符串中查找另一个字符串
2008/11/19 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP7 新增常量
2021/03/09 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
python实现网页录音效果
2020/10/26 Python
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
高职助产应届生自荐信
2013/09/24 职场文书
毕业生自我鉴定
2013/11/05 职场文书
医学专业毕业生推荐信
2013/11/14 职场文书
节水标语大全
2014/06/11 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
2015团员个人年度总结
2015/11/24 职场文书
python某漫画app逆向
2021/03/31 Python
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js