// 初始化金额字段 function initCurrencyField(){ $("input.currency").each(function(){ $(this).val(formatCurrency($(this).val())); // 绑定事件 $(this).focus(function(){ $(this).val(trim($(this).val())); }); $(this).blur(function(){ var value = $(this).val(); if(!isDouble(value)){ alert("请输入正确的数值"); $(this).val(0); $(this).focus(); return; } $(this).val(formatCurrency(value)); }); }); } function isDouble(value) { var Double = /^[-\+]?\d+(\.\d+)?$/; value = value.replace(/,/g, ''); return Double.test(value); }; function formatCurrency(value) { if (MRound(value, 6) == 0) { return "0.00"; } var v = '' + value; v = v.replace(/[¥,]/g, ''); var prefix = ''; if (v.indexOf("-") == 0) { prefix = v.substring(0, 1); v = v.substring(1); } var s = ''; if (v.indexOf(".") != -1) { var index = v.indexOf("."); s = v.substring(index); var moreOne = 0; if (s.length > 3) { var num = parseInt(s.substring(1, 3), 10); if (parseInt(s.substring(3, 4), 10) > 4) { num++; // 四舍五入 if (num >= 100) { moreOne++; num = num - 100; } } if (num < 10) { s = ".0" + num; } else { s = "." + num; } if (s.length == 2) { s += '0'; } } else if (s.length == 2) { s += '0'; } v = v.substring(0, index); if (moreOne > 0) { v = parseFloat(v) + moreOne; } } else { s = '.00'; } var len = v.length; while (len > 3) { s = ',' + v.substring(len - 3) + s; v = v.substring(0, len - 3); len -= 3; } s = prefix + v + s; return s; } function MRound(m, n) { return Math.round(m * Math.pow(10, n)) / Math.pow(10, n); } function trim(str) { return str.trim().replace(/[¥,%]/g, ''); }