专业编程基础技术教程

网站首页 > 基础教程 正文

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

ccvgpt 2024-07-21 17:46:14 基础教程 26 ℃

为了保障【负整数】的正确性,在只能输入负整数的项目里,增加实时验证功能,

用户只能输入指定长度的【负整数】。以外的场合禁止输入。

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

HTML代码

<input type="text" class="force-sign-number-format-10" .../>

JS调用方法

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

验证【负整数】类型方法

function callCustomiseInputCheck(inputObject) {
    jQuery.each(inputObject.classList, function(itemIndex, classItem) {

        if (/^force\-sign\-number\-format\-\d{1,}$/.test(classItem)) {
            //例:<input type="text" class="force-sign-number-format-10" .../>
            // 方法【runInputFilter】,参照【Jquery实时验证,只能输入指定长度的数字】
            runInputFilter(inputObject, ',', function(value) {
                var strSignRegExp = '^\\-\\d{0,' + classItem.split('-')[4] + '}#39;;
                var signRegExp = RegExp(strSignRegExp);
                var strRegExp = '^\\d{0,' + classItem.split('-')[4] + '}#39;;
                var regExp = RegExp(strRegExp);
                return signRegExp.test(value) || regExp.test(value);
            });
            //格式化
            postLostFocus(inputObject, function(inputObject) {
                // 去掉前面连续的0
                if (inputObject.value != null) {
                    inputObject.value = inputObject.value.replaceAll(/^-(0*)(\d*\d{1})$/ig, function($0, $1, $2) {
                        return '-' + $2;
                    });
                    inputObject.value = inputObject.value.replaceAll(/^(0*)(\d*\d{1})$/ig, function($0, $1, $2) {
                        return $2;
                    });
                }
                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;
                    });
                }
            });
        }
    });
}

共通处理方法

/**
 * 绑定失去焦点时的处理
 * @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;
};

Tags:

最近发表
标签列表