要求只能输入一位小数且不能为小数和数字外的其它格式
html:
<el-input v-model="infectiousFormData.animal" @input ="infectiousFormData.animal=infectiousFormData.animal.replace(/[^0-9.]/g,'')"
maxlength="4" @keyup.native="infectiousFormData.animal=oninput(infectiousFormData.animal,1)"
size="small"></el-input>
其中infeciousFormData和animal分别为温度对应字段可以更换;
主要用来校验的在@keyup.native和@input中进行编写
js:
oninput(num,limit){
var str= num;
var len1 = '';
var len2 = '';
var len3 = '';
if(str.length>=1) {
len1=str.substr(0,1);
}
if(str.length>=2) {
len2 = str.substr(1, 1)
}
if(str.length>=3) {
len3 = str.substr(2, 1);
}
console.log(len1)
console.log(len2)
console.log(len3)
//如果第⼀位是0,第二位不是点,就用数字把点替换掉
if(str.length>1&&len1==0&&len2!='.'){
str=str.substr(1,1);
}
//第一位不能是.
if(len1=='.'){
str=""
}
//限制只能输入一个小数点
if(str.indexOf(".")!=-1){
var str_ = str.substr(str.indexOf(".")+1);
if(str_.indexOf(".")!=-1){
str=str.substr(0,str.indexOf(".")+str_.indexOf(".")+1);
}
}
//正则替换
str = str.replace(/[^\d^\.]+/g, '') // 保留数字和小数点
if (limit / 1 === 1) {
str = str.replace(/^\D*([0-9]\d*\.?\d{0,1})?.*$/,'$1') // 小数点后只能输一位
}
//如果第二位或者第三位都不为. 则清空输入框
if(len3!=''&&len2!=''){
if(len3!='.'&&len2!='.'){
str='';
}
}
return str;
},