龙空技术网

编程技巧:Jquery实时验证,指定长度的「负小数」

天高凭鸟飞海阔任鱼跃 146

前言:

现在同学们对“jquery验证小数位数”可能比较关切,看官们都需要知道一些“jquery验证小数位数”的相关知识。那么小编也在网络上收集了一些对于“jquery验证小数位数””的相关内容,希望大家能喜欢,姐妹们快快来学习一下吧!

为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。

HTML代码

<input type="text" class="force-sign-decimal-2-3" .../>

JS调用方法

    $(document.body).find("input[type=text]").each(function() {        // 验证输入内容        callCustomiseInputCheck(this);    });

验证【负小数】类型方法

function callCustomiseInputCheck(inputObject) {    jQuery.each(inputObject.classList, function(itemIndex, classItem) {        //例:<input type="text" class="force-sign-decimal-2-3" .../> 整数部位数:2、小数部位数:3        if (/^force\-sign\-decimal\-\d{1,}\-\d{1,}$/.test(classItem)) {            // 方法【runInputFilter】,参照【Jquery实时验证,只能输入指定长度的数字】            runInputFilter(inputObject, ',', function(value) {                if (/^\-?\d*\.?\d*$/.test(value)) {//数字的场合                    var jsInteger = value.split('.')[0];//整数部                    var jsScale = value.split('.')[1];//小数部                    //整数部分越界的场合                    if (jsInteger && parseInt(jsInteger) > 0                        && jsInteger.replace('-', '').length > parseInt(classItem.split('-')[3])) {                        return false;                    }                    //小数部分越界的场合                    if (jsScale && parseInt(jsScale) > 0                        && jsScale.length > parseInt(classItem.split('-')[4])) {                        return false;                    }                    return true;                } else {                    //不是数字的场合                    return false;                }            });            //格式化            postLostFocus(inputObject, function(inputObject) {                if (!inputObject.value.contains('.')) {                    inputObject.value = inputObject.value + '.';                }                var regExp = RegExp(/^(\-?)(0{1,})?(\d*\.?\d*)$/);                var outPutArray = inputObject.value.match(regExp);                inputObject.value = outPutArray[1] + outPutArray[3];//去除前面连续的0(例:「-0012⇒-12」、「-0012.23⇒-12.23」)                blurDecimal(inputObject);                //去掉负数0的负号                if (/^[\-0*\.?0*]*$/.test(inputObject.value)) {                    inputObject.value = inputObject.value.replace(/^(\-)([0*\.?0*]*)$/, function($0, $1, $2) {                        return $2;                    });                }            });            //终止循环            return false;        }    });}

共通处理方法

/** * 绑定失去焦点时的处理 * @param textbox HTML输入框 * @param lostFocusFunction 失去焦点时的处理 * 例:postLostFocus(ocument.getElementById("XXX"),functionXXXXX); */function postLostFocus(textbox, lostFocusFunction) {    ["focusout"].forEach(function(event) {        var eventCommonPostLostFocus = function(event) {            lostFocusFunction(this);        }      // 参照文章【前端Jquery调用on或bind方法,避免重复绑定】        addEventExtras(textbox, event, eventCommonPostLostFocus);    });}function CommonUtilJs() { }//数值格式化CommonUtilJs.addComma = function(value) {    var patern = /^([\+\-]?\d+)(\d{3})([\,\d+]*)(\.\d+)?$/;    var rep = "";    var val = "";    if (value != undefined && value != null) {        val = String(value);        while (rep != val) {            rep = val;            val = rep.replace(patern, "$1,$2$3$4");        }    }    return val;};

标签: #jquery验证小数位数