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