-
编程技巧:Jquery实时验证,小数位补0,指定长度的「正小数」
- 网站名称:编程技巧:Jquery实时验证,小数位补0,指定长度的「正小数」
- 网站分类:技术文章
- 收录时间:2025-08-02 15:46
- 网站地址:
“编程技巧:Jquery实时验证,小数位补0,指定长度的「正小数」” 网站介绍
在只能输入【正小数】的输入框获取到焦点时,移除千位分隔符,
在输入数据时,实时校验输入内容是否正确,
失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。
HTML代码
<input type="text" class="force-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-decimalToFixed-2-3" .../> 整数部桁数:2、小数部桁数:3
if (/^force\-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.length > parseInt(classItem.split('-')[2])) {
return false;
}
//小数部分越界的场合
if (jsScale && parseInt(jsScale) > 0
&& jsScale.length > parseInt(classItem.split('-')[3])) {
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 == 4) {//指定小数位数的场合
var jsScale = parseInt(classItem.split('-')[3]);//小数部
inputObject.value = inputObject.value.split('.')[0] + '.' + inputObject.value.split('.')[1]).padEnd(jsScale, '0')//小数末尾补0
}
inputObject.value = CommonUtilJs.addComma(inputObject.value)
});
//终止循环
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;
};
更多相关网站
- JavaScript字符串操作方法大全,包含ES6方法
- [西门子PLC] 在触摸屏上面进行S7-1500梯形图编程
- 外贸独立站必看:多币种切换如何悄悄吃掉你的利润?
- Mock.js 实用教程:快速上手模拟数据生成
- 详解Javascript中被你忽略的浮点数运算的坑,来学习吧
- 简单的方法解决JavaScript中0.1 + 0.2 != 0.3的问题
- JS 开发者必看!TC39 2025 最新动向,这些新语法要火?
- JavaScript,ES6,数值扩展,二进制、八进制和十六进制,方法
- 如何用2 KB代码实现3D赛车游戏?2kPlus Jam大赛了解一下
- 10个JavaScript一行代码,解决90%的开发难题
- 如何使用 Fraction.js 解决 BigInt 的计算盲区?
- js四舍五入(js中四舍五入的代码怎么打)
- 最近发表
-
- TikTok Shop Enters Japan, Sparking Fresh Competition in Global E-Commerce
- China-Serbia forum highlights cooperation, civilizational dialogue
- 一文搭建智能问答聊天室(智能问答系统功能)
- 30天学会Python编程:18. Python数据库编程入门
- 亲身经历,对Gemini cli佩服的五体投地,太强了
- 莫祖永发明的世界身份证如何实现全球八十亿人民皆成为世界公民?
- 使用python scrapy框架抓取cnblog 的文章内容
- 石浩双色球2025084期:精选6+1红球三胆20 21 24缩水倍投
- Boao Forum 2025: Why China's AI ambitions matter to the world
- CBN Special丨A modern cyber-Exodus: Why “TikTok refugees” flee to Xiaohongshu and what’s next?
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 二调符号库 (23)
- acmecadconverter_8.52绿色版 (25)
- 梦幻诛仙表情包 (36)
- 魔兽模型 (23)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- parsevideo (22)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- usb2.0-serial驱动下载 (24)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- virtualdrivemaster (26)
- 数据结构c语言版严蔚敏pdf (25)
- 兔兔工程量计算软件下载 (27)
- 代码整洁之道 pdf (26)
- ccproxy破解版 (31)
- aida64模板 (28)
- contentvalues (23)