asp.net+js实现金额格式化_javascript技巧
程序员文章站
2022-03-10 10:07:30
...
根据用户需求,在输入金额时要格式化,即每三位数字加逗号分隔,并保留两位小数。
//======检查输入的是否为数字
function check() {
if (!((window.event.keyCode >= 48 && window.event.keyCode 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 "";
}
}
考虑到用户的体验,随使用JS对金额进行格式化,前台代码如下:
复制代码 代码如下:
JS代码如下:
复制代码 代码如下:
//======检查输入的是否为数字
function check() {
if (!((window.event.keyCode >= 48 && window.event.keyCode 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("-")”的判断。
关于金额的格式化问题,经常遇到这种事情,觉得这个还可以,也就留着,以供以后查阅方便!
下一篇: php 怎么做进度条
推荐阅读
-
javascript实现的距离现在多长时间后的一个格式化的日期
-
struts2标签实现金额格式化输出
-
javascript实现时间日期的格式化的方法汇总
-
js对数字的格式化使用说明_javascript技巧
-
JavaScript中两种链式调用实现代码_javascript技巧
-
javascript算法学习实现代码_javascript技巧
-
动态的改变IFrame的高度实现IFrame自动伸展适应高度_javascript技巧
-
javascript中的缓动效果实现程序_javascript技巧
-
google地图的路线实现代码_javascript技巧
-
通过正则格式化url查询字符串实现代码_javascript技巧