zoukankan      html  css  js  c++  java
  • js输入框对金额的匹配

    /**
     * 金额格式化
     * @param s
     * @param n
     * @returns {String}
     */
    function fmoney(s, n) {
        n = n > 0 && n <= 20 ? n : 2;
        s = parseFloat((s + "").replace(/[^d.-]/g, "")).toFixed(n) + "";
        var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
        t = "";
        for (i = 0; i < l.length; i++) {
            t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
        }
        return t.split("").reverse().join("") + "." + r;
    }
    /**
     * 只能输入数字和小数点
     * @param obj
     */
    function clearNoNum(obj) {
        obj.value = obj.value.replace(/[^d.]/g, ""); //清除“数字”和“.”以外的字符
        obj.value = obj.value.replace(/^./g, ""); //验证第一个字符是数字而不是.
        obj.value = obj.value.replace(/.{2,}/g, "."); //只保留第一个. 清除多余的.
        obj.value = obj.value.replace(/^(-)*(d+).(dd).*$/, '$1$2.$3'); //只能输入两个小数
        obj.value = obj.value.replace(".", "$#$").replace(/./g, "").replace("$#$",".");
    }
    
    //匹配金额并且格式化
    function matchMoney(obj) {
        var stmp = "";
        if (obj.value == stmp) {
            return;
        } else if (obj.value == ".") {
            obj.value = "";
            return;
        }
        var ms = obj.value.replace(/[^d.]/g, "").replace(/(.d{2}).+$/, "$1").replace(/^0+([1-9])/, "$1").replace(/^0+$/, "0");
        var txt = ms.split(".");
        while (/d{4}(,|$)/.test(txt[0]))txt[0] = txt[0].replace(/(d)(d{3}(,|$))/, "$1,$2");
        obj.value = stmp = txt[0] + (txt.length > 1 ? "." + txt[1] : "");
    }
  • 相关阅读:
    java内部私有类的构造函数
    java 日志
    java Random.nextInt()方法
    迭代器是快速失败的
    java Calendar
    java null?
    EclEmma
    Java泛型、泛型协变&&类型擦除
    java 声明实例化初始化三连
    写在Ruby之前。
  • 原文地址:https://www.cnblogs.com/xlh91118/p/5016645.html
Copyright © 2011-2022 走看看