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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章