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

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

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

上代码

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

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » js 实现input输入框内数字的小数点前八位后二位数的控制

发表回复