input 如何控制input输入框的数值:小数点前N位,小数点后M位(例如:js 实现input输入框内数值的小数点前2位后3位数的控制...)
参考博文:(33条消息) html input 小数点后两位,js 实现input输入框内数字的小数点前八位后二位数的控制..._weixin_39612038的博客-CSDN博客
直接上代码:
// input输入框,控制输入框的数值格式,小数点前N位数与小数点后M位数控制 function inputNumByNM(obj, N, M) { // N:表示取小数点前N位 obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符 obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字 obj.value = obj.value.replace(/\.{2,}/g,""); //只保留第一个, 清除多余的 obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); var temp = obj.value; if (temp < 0) { obj.value = ""; return; } // 返回指定字符在此字符串中第一次出现处的索引 var posDot = temp.indexOf("."); // 不包含小数点 if (posDot < 0) { if (temp.length <= N) { return; // 小于等于N位数直接返回 } else { // 大于N位数就删掉第N+1位(只会保留N位) if (temp.length > N) { obj.value = temp.substring(1, N + 1); } return; } } var lastDot = temp.lastIndexOf("."); if (posDot != lastDot) { obj.value = ""; return; } //走到这有小数点 if (posDot > N) { // 大于N位数就删掉第N+1位(只会保留N位) if (temp.length > N) { obj.value = temp.substring(1, N + 1); } return; } //如果包含小数点(项目上的特殊需求:小数点前不超过3位,则控制小数点后最多3位,小数点前为3位,则控制小数点后最多2位) if (temp.length - posDot - 1 > 2) { if (posDot < 3) { // 删除小数点后的第M位 obj.value = temp.substring(0, posDot + M + 1); } else { // 删除小数点后的第M-1位 obj.value = temp.substring(0, posDot + M); } } // 如果包含小数点 /*if (temp.length - posDot - 1 > 2) { // 删除小数点后的第三位 obj.value = temp.substring(0, posDot + 3); }*/ };

浙公网安备 33010602011771号