参考了几种金额判断是方法整合了下方法:
<el-form :model="form" :rules="rules"><el-form-item label="金额" required prop="money"><el-input placeholder="请输入金额" v-model="form.money" /></el-form-item></el-form>
date(){const validatorMoney = (rule,value,callback)=>{let isVal = value.toString() //先转换成字符串类型let regnumDot = /[^\d.]/gif(isVal === ''){callback(new Error('请输入金额'))} else if (isVal.indexOf('.') === 0) {this.form.money = '0' + isVal} else if (isVal.indexOf('.') < 0 && isVal != "") {this.form.money = parseFloat(isVal)//如果没有小数点,首位不能为类似于 01、02的金额} else if (regnumDot .test(isVal )) {this.form.money = isVal.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符callback(new Error('只能输入“数字”和“.”的字符'))} else if (isVal.split(".").length - 1 > 1) {this.form.money = isVal.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的} else if (isVal.indexOf('.') >= 1) {this.form.money = isVal.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数callback(new Error('只能输入两个小数'))}}return {form:{money: 0},rules: {money: [{validator: validatorMoney, trigger: 'change'}]}}}