一、很多时候el-input
设置了type="number"
还是能输入字母e
,那么如何禁止呢?
1.例如input框为
<el-input type="number" v-model="" @keydown.native="keyInput" placeholder="请输入数字"></el-input>
1.
2.写方法
keyInput(e) {
let key = e.key
if (key === 'e') {
e.returnValue = false
return false
}
return true
},
二、限制type=text
的input
框输入非负整数
event.target.value = event.target.value.replace(/^[0]|[^\d]/g, '');
三、限制type=text
的input
框输入小数
event.target.value = event.target.value.replace(/^0+$/g, '0');
const value = event.target.value.replace(/^[0.]|[^\d.]/g, '');
// 如果包含小数点,则只保留第一个小数点
const decimalIndex = value.indexOf('.');
if (decimalIndex !== -1) {
event.target.value = value.substr(0, decimalIndex) + '.' + value.substr(decimalIndex).replace(/\./g, '');
} else {
event.target.value = value;
}