在日常工作中兆解,記錄下自己的經(jīng)驗(yàn)之談---
function formatMoney(el) { //input輸入框金額輸入小數(shù)點(diǎn)限制,格式化芍殖,獲取和失去焦點(diǎn)金額是否格式化(封裝方法)
$(el).keyup(function() {
clearNoNum(this)
})
function clearNoNum(obj) {
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“數(shù)字”和“.”以外的字符?
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一個(gè). 清除多余的?
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能輸入兩個(gè)小數(shù)?
if(obj.value.indexOf(".") < 0 && obj.value != "") { //以上已經(jīng)過(guò)濾儡蔓,此處控制的是如果沒(méi)有小數(shù)點(diǎn),首位不能為類似于 01劝赔、02的金額
obj.value = parseFloat(obj.value);
}
}
var val;
$(el).focus(function() {
$(this).val(val)
})
$(el).blur(function() {
val = $(this).val();
$(this).val(cc($(this).val()))
})
function cc(s) {
if(/[^0-9\.]/.test(s)) return "invalid value";
s = s.replace(/^(\d*)$/, "$1.");
s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
s = s.replace(".", ",");
var re = /(\d)(\d{3},)/;
while(re.test(s))
s = s.replace(re, "$1,$2");
s = s.replace(/,(\d\d)$/, ".$1");
return "" + s.replace(/^\./, "0.")
}
}