let PriceNumberInput = document.getElementById('priceInput')
let priceNumber = PriceNumberInput.value
let regStrs = [
['[^\\d\\.]+$', ''], // 禁止录入任何非数字和点
['\\.(\\d?)\\.+', '.$1'], // 禁止录入两个以上的点
['^(\\d+\\.\\d{2}).+', '$1'] // 禁止录入小数点后两位以上
]
if(priceNumber !== '' && priceNumber !== 0){
for (let i = 0; i < regStrs.length; i++) {
let reg = new RegExp(regStrs[i][0])
priceNumber = priceNumber.replace(reg, regStrs[i][1])
}
}
if(PriceNumberInput.value !== priceNumber){
PriceNumberInput.value = priceNumber
}1. vue项目可将input的type设置为text
2. 测试element-ui的el-input尝试这样强制修改input的value属性失败
3. v-model双向绑定的input输入框,会出现priceNumber的值改变,视图没进行改变,故需要增加input的value是否与priceNumber的值相等,如不等可手动进行修改
--------------------------------- 整数 ---------------------------
if(num !== '' && num !== 0){
num = num.replace(/[^\d]/g, '')
}
if (numInput.value !== num) {
numInput.value = num
}注意:
1. input的type需为text
本文介绍了一种在Vue项目中实现对input输入框内的数值进行校验的方法,包括正则表达式的使用来确保只能输入合法的数字和小数,并且限制了小数点后的位数。此外还提供了一些注意事项,例如如何正确地处理整数输入。
1130

被折叠的 条评论
为什么被折叠?



