input框限制只能输入数字的方法使用正则表达式比较方便,我尝试了多种方法,其中效果最好的是使用input框的input事件再配合正则表达式来处理。
1、vue框架中
在vue中是双向数据绑定的,可以使用v-model绑定的值来进行操作
<el-input @input="handleInput" v-model="demo"/>
<script setup>
const demo = ref()
const handleInput = (value) => {
demo.value = value.replace(/[^\d]/g,'')
}
</script>
这样写就避免了输入中文的时候会删除原有的合法输入的文本
2、html中
<input type="text" id="myInput" oninput="validateInput()">
<script>
function validateInput() {
var input = document.getElementById('myInput');
input.value = input.value.replace(/\D/g, ''); // 删除所有非数字字符
}
</script>