例: 校验 number(22,12) 类型 的 必填数据。【ps:好像可以改成接收参数,把整数、小数位数作为入参就可以通用了,回头再看吧,先记录到这儿。如有错误,欢迎指正】
<template>
</template>
<script>
export default {
data () {
let numSpValid = (rule,value,callback)=>{
if(value){
const integerNum = 10 // 整数位数
const decimalNum = 12 // 小数位数
let pointIndex = value.indexOf('.') // 获取小数点位置
if(pointIndex !== -1){ // 有小数点
//拆成两段判断
let starStr = value.substr(0,pointIndex)
let endStr = value.substr(pointIndex+1)
if( (starStr.length > integerNum) || (endStr.length > decimalNum) ) {
callback(new Error('整数位数不可超过'+integerNum+'位,小数位数不超过'+decimalNum+'位'))
} else {
callback()
}
} else { // 无小数点
if(value.length>integerNum){
callback(new Error('整数位数不可超过'+integerNum+'位,小数位数不超过'+decimalNum+'位'))
} else {
callback()
}
}
} else {
callback()
}
}
return {
formData: {
myData: '' // 待验证数据 必填 类型:number(22,12)
},
// 校验规则
rules: {
myData: [
{ validator: validates.validateNum, trigger: 'change'},
{ validator: numSpValid, trigger: 'change'}
]
}
}
},
methods: {}
}
</script>
<style lang="scss" scoped>
</style>