最近恰好使用了element-ui的form表單,官網只提供的示例,這裏把一些經常使用的驗證記錄下來,方便後期查找最終的效果是這樣的,es6
這個表單裏還加入了一下其餘組件配合使用,這裏爲了簡潔,就不放那麼多代碼,若是你恰好有用到其餘功能的能夠留言發其餘功能的源碼element-ui
// 這是HTML部分 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="125px" class="demo-ruleForm"> <el-form-item label="聯繫電話:" prop="buyerPhone" required> <el-input v-model="ruleForm.buyerPhone"></el-input> </el-form-item> <el-form-item label="Email:" prop="buyerEmail" required> <el-input v-model="ruleForm.buyerEmail"></el-input> </el-form-item> </el-form>
// 這是js部分 data () { var checkPhone = (rule, value, callback) => { const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/ if (!value) { return callback(new Error('電話號碼不能爲空')) } setTimeout(() => { // Number.isInteger是es6驗證數字是否爲整數的方法,可是我實際用的時候輸入的數字老是識別成字符串 // 因此我就在前面加了一個+實現隱式轉換 if (!Number.isInteger(+value)) { callback(new Error('請輸入數字值')) } else { if (phoneReg.test(value)) { callback() } else { callback(new Error('電話號碼格式不正確')) } } }, 100) } var checkEmail = (rule, value, callback) => { const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/ if (!value) { return callback(new Error('郵箱不能爲空')) } setTimeout(() => { if (mailReg.test(value)) { callback() } else { callback(new Error('請輸入正確的郵箱格式')) } }, 100) } return { ruleForm: { buyerPhone: 13833334444, buyerEmail: 'liming@163.com' }, rules: { buyerPhone: [ { validator: checkPhone, trigger: 'blur' } ], buyerEmail: [ { validator: checkEmail, trigger: 'blur' } ] } }