源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[JavaScript] asp.net+js实现金额格式化

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-12-25 05:35:55 | 显示全部楼层 |阅读模式
这篇文章主要介绍了asp.net+js实现金额格式化的相关资料,需要的朋友可以参考下

根据用户需求,在输入金额时要格式化,即每三位数字加逗号分隔,并保留两位小数。

考虑到用户的体验,随使用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("-")”的判断。

关于金额的格式化问题,经常遇到这种事情,觉得这个还可以,也就留着,以供以后查阅方便!

回复

使用道具 举报

6

主题

1万

回帖

174

积分

注册会员

Rank: 2

积分
174
发表于 2022-12-31 02:07:15 | 显示全部楼层
还不错啊
回复 支持 反对

使用道具 举报

6

主题

1万

回帖

174

积分

注册会员

Rank: 2

积分
174
发表于 2023-2-4 00:44:50 | 显示全部楼层
看看看咋么
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

499

积分

中级会员

Rank: 3Rank: 3

积分
499
发表于 2023-3-21 06:46:11 | 显示全部楼层
哟哟哟哟哟以偶
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-6-23 23:36:44 | 显示全部楼层
快更新啊,我擦
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-9-13 23:42:50 | 显示全部楼层
看看看咋么
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

381

积分

中级会员

Rank: 3Rank: 3

积分
381
发表于 2023-10-14 05:51:04 | 显示全部楼层
看看看咋么
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2024-7-1 07:55:37 | 显示全部楼层
hi哦和烦恼农家女
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

66

积分

注册会员

Rank: 2

积分
66
发表于 2024-7-10 06:37:54 | 显示全部楼层
还可以不错
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

347

积分

中级会员

Rank: 3Rank: 3

积分
347
发表于 2024-7-23 02:53:26 | 显示全部楼层
灌灌灌灌水
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-2 02:59 , Processed in 0.067588 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表