在財務或者其他一些特殊的領域,客戶可能需要處理一串較長的數字,這個過程中容易產生一些錯誤,比如 1000000000 這個數字,普通人幾乎不可能一眼看出這串數字到底表示多少,但如果寫成10億,就一目了然了。在最近的乙個專案中就遇到了這樣的問題,我們為使用者提供了一 個文字框來輸入一筆交易的金額,因為這涉及到關鍵資訊,所以我們不希望使用者在填寫這一數字的時候出現任何錯誤或者疏忽,於是我們設計為監聽文字框的鍵盤事 件,並對文字框裡的輸入進行即時的反饋:
$(這樣的話,使用者在輸入數字的時候可以清晰地即時檢查自己有沒有輸入錯誤。這裡我們使用了乙個函式cnnumformat,它將較長的數字轉化為上圖中的易讀的形式。這裡所說的較長是指4位數以上,即數字大於 10000 則進行處理。這個函式主要借助正規表示式來完成工作,下面是函式的完整**:'input'
).keyup
(function
());
var cnnumformat =說明:function
(n)if
(n <
10000
)return n;
var core =
$)/);
var balance =
this
.checkbalance
(nformatarray[
2]);
var result = nformatarray[1]
+"萬"
+ balance;
return result;},
hundredmillion :
function
(n)else
$)/);
var balance =
this
.checkbalance
(nformatarray[
2]);
var result = nformatarray[1]
+"億"
+ balance;
if(!balance.length)
else
}return
(result + left).
replace
(/零零/
,'零');}
},checkbalance :
function
(n)else},
decimal :
function
(n) n = n.
replace
(/\./,''
);if
(new
regexp
('^[1-9]0?$'
).test
(n))
elseif(
newregexp('0
\\d?'
).test
(n))
else}}
n +="";
n = n.
match
(/(\d+)(\.\d)?/
);var r1 = core.
tenthousand
(n[1
]);var r2 = core.
hundredmillion
(r1);
var r3 = core.
decimal
(n[2
]);return
;}
1. 引數:該函式接收乙個引數,等待轉換的數字。這個數字可以為數值型別也可以是字串型別,這並不重要。如果該數字小於10000則原樣返回,否則進行轉換。
2. 驗證:為了不和你的驗證系統做重複的工作,函式內部只做了isnan的驗證,驗證失敗則返回false。
4. 返回值:返回值為乙個物件,包含 a 和 b 兩個屬性,它們分別是整數部分的處理結果和小數部分的處理結果(如果有小數部分)。
轉換的例子:
var r =cnnumformat
(10002.2
); r.a +
"元"+ r.b //1萬零2元2角
JS 實現數字轉換為大寫中文金額
數字轉換為大寫中文金額 function convertcurrency money money parsefloat money if money maxnum if money 0 轉換為字串 money money.tostring if money.indexof 1 else 獲取整型部分...
python數字金額轉換為中文大寫金額
python數字金額轉換為中文大寫金額 編寫一函式,將數字金額轉換為中文大寫金額。設最高位考慮到億,最低位考慮到分 如 數字金額為1023.445,轉換為中文大寫金額為 壹仟零佰貳拾叄元肆角伍分 輸入 乙個數字金額 如 1234.5 輸出 中文大寫金額 壹仟貳佰叄拾肆元伍角零分 from decim...
數字日期轉換為中文文字日期
clear 年 c year chrtranc transform year date 0123456789 一二三四五六七 年 月 cmonth transform month date cmonth1 iif right cmonth,1 0 right cmonth,1 c month iif...