<el-input v-model.trim="rate" @input="inputChange" @change="onChange"></el-input>
inputChange(value) {
let newValue = value.replace(/[^0-9.]/g, '')
if (newValue) {
// 判断是否有多个.
if (newValue.split('.').length >= 3 && newValue.charAt(newValue.length - 1) === '.') {
newValue = newValue.substring(0, newValue.length - 1)
}
// 首位是.或者是0开头但不是以0.开头的
if (newValue.charAt(0) === '.' || (newValue.length > 1 && newValue.charAt(0) === '0' && !newValue.startsWith('0.'))) {
newValue = newValue.substring(1)
}
}
this.rate = newValue
},
// 解决失去焦点或回车时最后一位是.的问题
onChange() {
let newValue = this.rate
if (newValue && newValue.charAt(value.length - 1) === '.') {
newValue = newValue.substring(0, value.length - 1)
}
this.rate = newValue
}
el-input 限制输入框只能输入数字和小数
于 2024-07-01 11:15:11 首次发布