asp.net+js實(shí)現(xiàn)金額格式化
根據(jù)用戶(hù)需求,在輸入金額時(shí)要格式化,即每三位數(shù)字加逗號(hào)分隔,并保留兩位小數(shù)。
考慮到用戶(hù)的體驗(yàn),隨使用JS對(duì)金額進(jìn)行格式化,前臺(tái)代碼如下:
<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í)因?yàn)榻痤~可輸入負(fù)數(shù),所以加上“neg = objvalue.indexOf("-")”的判斷。
關(guān)于金額的格式化問(wèn)題,經(jīng)常遇到這種事情,覺(jué)得這個(gè)還可以,也就留著,以供以后查閱方便!
- JS格式化數(shù)字金額用逗號(hào)隔開(kāi)保留兩位小數(shù)
- js金額數(shù)字格式化實(shí)現(xiàn)代碼(加減逗號(hào)處理)
- JavaScript 格式化數(shù)字、金額、千分位、保留幾位小數(shù)、舍入舍去
- js 金額格式化來(lái)回轉(zhuǎn)換示例
- js格式化輸入框內(nèi)金額、銀行卡號(hào)
- js格式化金額可選是否帶千分位以及保留精度
- 用js格式化金額可設(shè)置保留的小數(shù)位數(shù)
- js實(shí)現(xiàn)格式化金額,字符,時(shí)間的方法
- JS實(shí)現(xiàn)的4種數(shù)字千位符格式化方法分享
- JS格式化數(shù)字保留兩位小數(shù)點(diǎn)示例代碼
- JS數(shù)字千分位格式化實(shí)現(xiàn)方法總結(jié)
- js實(shí)現(xiàn)的格式化數(shù)字和金額功能簡(jiǎn)單示例
相關(guān)文章
解決select2在bootstrap modal中不能正常使用的問(wèn)題
今天小編就為大家分享一篇解決select2在bootstrap modal中不能正常使用的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08JS IOS/iPhone的Safari瀏覽器不兼容Javascript中的Date()問(wèn)題如何解決
這篇文章主要介紹了JS IOS/iPhone的Safari瀏覽器不兼容Javascript中的Date()問(wèn)題的解決方案,非常不錯(cuò),感興趣的朋友參考下吧2016-11-11通過(guò)微信公眾平臺(tái)獲取公眾號(hào)文章的方法示例
這篇文章主要介紹了通過(guò)微信公眾平臺(tái)獲取公眾號(hào)文章的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12javascript中方便增刪改cookie的一個(gè)類(lèi)
把jquery.cookie.js改了一下,改成了純javascript版本,以備我以后項(xiàng)目只需,增加了一個(gè)得到頁(yè)面全部cookie鍵值的功能2012-10-10利用js實(shí)現(xiàn)Vue2.0中數(shù)據(jù)的雙向綁定功能
vue數(shù)據(jù)雙向綁定是通過(guò)數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式來(lái)實(shí)現(xiàn)的,下面這篇文章主要給大家介紹了關(guān)于如何利用js實(shí)現(xiàn)Vue2.0中數(shù)據(jù)的雙向綁定功能的相關(guān)資料,需要的朋友可以參考下2021-07-07微信用戶(hù)訪問(wèn)小程序的登錄過(guò)程詳解
這篇文章主要介紹了微信用戶(hù)訪問(wèn)小程序的登錄過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09javascript Array數(shù)組對(duì)象的擴(kuò)展函數(shù)代碼
我們經(jīng)常給 String,Function,Array 的原型加上自定義的擴(kuò)展函數(shù),比如去除字符串空格,數(shù)組排序等2010-05-05js怎么覆蓋原有方法實(shí)現(xiàn)重寫(xiě)
這篇文章主要介紹了js怎么覆蓋原有方法實(shí)現(xiàn)重寫(xiě),需要的朋友可以參考下2014-09-09