输入框校验
<cube-input v-model="inputValue" @input="changeInput"></cube-input>
changeInput(v) {
let va = v + '';
// 最大输入9999,正则表达式不会写
if (parseFloat(va) > 10000) {
va = '9999'
}
va = va
.replace(/[^\d.]/g, "") //将非数字和点以外的字符替换成空
.replace(/^\./g, "") //验证第一个字符是数字而不是点
.replace(/\.{2,}/g, ".") //出现多个点时只保留第一个
.replace(".", "$#$") // 1、将数字的点替换成复杂字符$#$
.replace(/\./g, "") // 2、将字符串的点直接清掉
.replace("$#$", ".") // 3、将复杂字符再转换回点
.replace(/^(\\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); //只能输入两个小数
}
this.$nextTick(() => {
this.inputValue = va
})
},
网友评论