最近在做一个报价系统,要求金额输入框中限制小数点前面最多8位后面2位小数的控制 如下图:
上代码
HTML代码
JS代码
// 报价值的整数位数与小数判断
function clearNoNum(obj, digits) {
var temp = obj.value;
if (temp < 0) {
obj.value = "";
return;
}
var posDot = temp.indexOf(".");// 返回指定字符在此字符串中第一次出现处的索引
if (posDot < 0) {// 不包含小数点
if (temp.length <= digits) { return;//小于八位数直接返回 } else { if (temp.length > digits) {// 大于八位数就删掉第九位(只会保留八位)
obj.value = temp.substring(0, digits);
}
return;
}
}
var lastDot = temp.lastIndexOf(".");
if (posDot != lastDot) {
obj.value = "";
return;
}
// 走到这有小数点
if (posDot > digits) {
if (temp.length > digits) {// 大于八位数就删掉第九位(只会保留八位)
obj.value = temp.substring(0, digits);
}
return;
}
if (temp.length - posDot - 1 > 2)// 如果包含小数点
{
// 删除小数点后的第三位
obj.value = temp.substring(0, posDot + 3);
}
}