js input 保留1位小数

input 中只保留1位小数点

实现方法:这里主要用 input事件来监听,vue中的话用 @input

input中加上 type='text' 注意这里有坑,不能用number类型,谷歌,360可以,火狐会报错

oninput=onlyNonNegative(this) //html 

function onlyNonNegative(obj) {
    //清除“数字”和“.”以外的字符
    obj.value = obj.value.replace(/[^\d.]/g, "");
    //只保留第一个. 清除多余的
    obj.value = obj.value.replace(/\.{2,}/g, ".");
    obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
    //只能输入一个小数
    obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3');
    //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02
    if(obj.value.indexOf(".") < 0 && obj.value != "") { 
        obj.value = parseFloat(obj.value);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章