Print

js 实现input输入框内数字的小数点前八位后二位数的控制


作者: 文章来源:

本文原地址:https://www.mimiwuqi.com/webqianduan/197185.html

最近在做一个报价系统,要求金额输入框中限制小数点前面最多 8 位后面 2 位小数的控制  如下图:

js 实现input输入框内数字的小数点前八位后二位数的控制 1

上代码

HTML 代码

<input id="creditorScales_v" type="number" onkeyup="clearNoNum(this,5)">

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);
    }
}

更多 建站教程 请访问 https://www.mimiwuqi.com/webqianduan/