proving(index) {
// this.list[index].value 是输入框输入的值,这里是列表循环出来的输入框
// 先把非数字的都替换掉,除了数字和.
this.formDate.tankList[index].capacity = this.formDate.tankList[index].capacity.replace(
/[^\d.]/g,
'',
)
// 必须保证第一个为数字而不是.
this.formDate.tankList[index].capacity = this.formDate.tankList[index].capacity.replace(
/^\./g,
'',
)
// 保证只有出现一个.而没有多个.
this.formDate.tankList[index].capacity = this.formDate.tankList[index].capacity.replace(
/\.{2,}/g,
'',
)
// 保证.只出现一次,而不能出现两次以上
this.formDate.tankList[index].capacity = this.formDate.tankList[index].capacity
.replace('.', '$#$')
.replace(/\./g, '')
.replace('$#$', '.')
let count = -1
for (let i in this.formDate.tankList[index].capacity) {
if (this.formDate.tankList[index].capacity[i] === '.') {
count = i
}
if (count !== -1) {
if (i - count > 2) {
this.formDate.tankList[index].capacity = this.formDate.tankList[
index
].capacity.substring(0, this.formDate.tankList[index].capacity.length - 1)
}
}
}
// 限制输入长度最多为16位
if (this.formDate.tankList[index].capacity.length > 16) {
this.formDate.tankList[index].capacity = this.formDate.tankList[
index
].capacity.slice(0, 16)
}
},
<Input
v-model="e.capacity"
placeholder="请输入水箱容量"
@on-keyup="proving(idex)"
></Input>