2019-05-05

2019-05-05  本文已影响0人  heavens_jie

在日常工作中,记录下自己的经验之谈---

function formatMoney(el) { //input输入框金额输入小数点限制,格式化,获取和失去焦点金额是否格式化(封装方法)

$(el).keyup(function() {

clearNoNum(this)

})

function clearNoNum(obj) {

obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 

obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的 

obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");

obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数 

if(obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 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.")

}

}

上一篇下一篇

猜你喜欢

热点阅读