asp.net+js實現(xiàn)金額格式化
根據(jù)用戶需求,在輸入金額時要格式化,即每三位數(shù)字加逗號分隔,并保留兩位小數(shù)。
考慮到用戶的體驗,隨使用JS對金額進行格式化,前臺代碼如下:
<asp:TextBox ID="txtAmount" runat="server" onkeypress="check()" onkeyup="run(this)"></asp:TextBox>
JS代碼如下:
//======檢查輸入的是否為數(shù)字
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);
}
//======整理小數(shù)部分
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 "";
}
}
同時因為金額可輸入負數(shù),所以加上“neg = objvalue.indexOf("-")”的判斷。
關(guān)于金額的格式化問題,經(jīng)常遇到這種事情,覺得這個還可以,也就留著,以供以后查閱方便!
- JS格式化數(shù)字金額用逗號隔開保留兩位小數(shù)
- js金額數(shù)字格式化實現(xiàn)代碼(加減逗號處理)
- JavaScript 格式化數(shù)字、金額、千分位、保留幾位小數(shù)、舍入舍去
- js 金額格式化來回轉(zhuǎn)換示例
- js格式化輸入框內(nèi)金額、銀行卡號
- js格式化金額可選是否帶千分位以及保留精度
- 用js格式化金額可設(shè)置保留的小數(shù)位數(shù)
- js實現(xiàn)格式化金額,字符,時間的方法
- JS實現(xiàn)的4種數(shù)字千位符格式化方法分享
- JS格式化數(shù)字保留兩位小數(shù)點示例代碼
- JS數(shù)字千分位格式化實現(xiàn)方法總結(jié)
- js實現(xiàn)的格式化數(shù)字和金額功能簡單示例
相關(guān)文章
解決select2在bootstrap modal中不能正常使用的問題
今天小編就為大家分享一篇解決select2在bootstrap modal中不能正常使用的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08JS IOS/iPhone的Safari瀏覽器不兼容Javascript中的Date()問題如何解決
這篇文章主要介紹了JS IOS/iPhone的Safari瀏覽器不兼容Javascript中的Date()問題的解決方案,非常不錯,感興趣的朋友參考下吧2016-11-11利用js實現(xiàn)Vue2.0中數(shù)據(jù)的雙向綁定功能
vue數(shù)據(jù)雙向綁定是通過數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式來實現(xiàn)的,下面這篇文章主要給大家介紹了關(guān)于如何利用js實現(xiàn)Vue2.0中數(shù)據(jù)的雙向綁定功能的相關(guān)資料,需要的朋友可以參考下2021-07-07javascript Array數(shù)組對象的擴展函數(shù)代碼
我們經(jīng)常給 String,Function,Array 的原型加上自定義的擴展函數(shù),比如去除字符串空格,數(shù)組排序等2010-05-05