function inputFix2Number(obj, decimal_length,is_int) {
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是小数点
obj.value = obj.value.replace(/^00/g, "0"); //验证开头是2个0
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个小数点, 清除多余的
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
if(is_int){
obj.value = obj.value.replace(".", "")
}
switch (decimal_length) {
case 1:
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3'); //替换多余字符
break;
case 2:
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //替换多余字符
break;
case 3:
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d\d).*$/, '$1$2.$3'); //替换多余字符
break;
case 4:
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, '$1$2.$3'); //替换多余字符
break;
default:
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //替换多余字符
break;
}
}
//单个绑定
$('.verify-float2-ipt').on("input", function () {
inputFix2Number(this, $(this).attr('data-decimal_length')*1)
var $that = $(this);
setTimeout(function () {
$('#test').text($that.val() * 5)
}, 10)
})
//委托绑定
$("body").on("input.only-input-float3", "input.verify-float2-ipt", function () {
// console.log("初始值:"+this.value);
$(this).val($.trim($(this).val()));
if ($(this).val() && isNaN($(this).val())) {
$(this).val($(this).val().substr(0, $(this).val().length - 1));
// console.log("输入非数字,处理后为"+this.value);
}
var last = $(this).val().lastIndexOf(".");
var length = $(this).val().length;
if ($(this).attr("data-decimal_length") == 4) { //允许的最大位数 6代表最多允许4位小数 小数点1位+4位+新输入的1位
//console.log(length - last, $(this).attr("data-decimal_length"))
if (last != -1 && length - last == 6) {
$(this).val($(this).val().substr(0, $(this).val().length - 1));
}
} else if (last != -1 && length - last == 5) {
$(this).val($(this).val().substr(0, $(this).val().length - 1));
// console.log("小数点位数大于3位:处理后为"+this.value)
}
console.log('3', +new Date())
});
限制input输入数字和小数点位数
最新推荐文章于 2024-04-12 09:27:17 发布