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