美文网首页
2019-05-05

2019-05-05

作者: heavens_jie | 来源:发表于2019-05-05 14:52 被阅读0次

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

    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.")

    }

    }

    相关文章

      网友评论

          本文标题:2019-05-05

          本文链接:https://www.haomeiwen.com/subject/auxhoqtx.html