为了保障【负整数】的正确性,在只能输入负整数的项目里,增加实时验证功能,
用户只能输入指定长度的【负整数】。以外的场合禁止输入。
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;
};