龙空技术网

Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0

天高凭鸟飞海阔任鱼跃 228

前言:

此时大家对“jquery文本框删除特定值”大约比较看重,姐妹们都需要分析一些“jquery文本框删除特定值”的相关文章。那么小编在网络上收集了一些对于“jquery文本框删除特定值””的相关资讯,希望姐妹们能喜欢,你们一起来了解一下吧!

在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,

在输入数据时,实时校验输入内容是否正确,

失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。

HTML代码

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

JS调用方法

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

实时校验【负小数】,小数位未满时补0。

function callCustomiseInputCheck(inputObject) {    jQuery.each(inputObject.classList, function(itemIndex, classItem) {        //例:<input type="text" class="force-sign-decimalToFixed-2-3" .../> 整数部桁数:2、小数部桁数:3        if (/^force\-sign\-decimalToFixed\-\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 == "") {                    return false;                }                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」)                var classItemLength = classItem.split('-').length                if (classItemLength == 5) {//指定小数位数的场合                    var jsScale = parseInt(classItem.split('-')[4]);//小数部                    inputObject.value = inputObject.value.split('.')[0] + '.' + inputObject.value.split('.')[1]).padEnd(jsScale, '0')//小数末尾补0                }                inputObject.value = CommonUtilJs.addComma(inputObject.value)                //去掉负数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文本框删除特定值 #jquery中文字符串长度