vue如何使用rules對錶單欄位進行校驗
阿新 • • 發佈:2018-12-10
基於element-ui
1、在程式碼中,新增屬性::rule
<el-form :model="form" :rules="rules" ref="form" label-width="150px"></el-form> 並且,在<el-form-item>中新增prop屬性,對應rules中的規則
2、新開一個資料夾(validate.js)定義驗證規則
3、在頁面(index.vue)中引入驗證規則定義的檔案,並在export default中定義rule規則,使用語法:{validator:驗證方法,trigger:驗證觸發}
3、以下是validator.js檔案的部分驗證方法
/* 是否是公司郵箱*/ export function isWscnEmail(str) { const reg = /^[a-z0-9](?:[-_.+]?[a-z0-9]+)*@wallstreetcn\.com$/i; return reg.test(str.trim()); } /* 合法uri*/ export function validateURL(textval) { const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; return urlregex.test(textval); } // 驗證是否整數 export function isInteger(rule, value, callback) { if (!value) { return callback(new Error('輸入不可以為空')); } setTimeout(() => { if (!Number(value)) { callback(new Error('請輸入正整數')); } else { const re = /^[0-9]*[1-9][0-9]*$/; const rsCheck = re.test(value); if (!rsCheck) { callback(new Error('請輸入正整數')); } else { callback(); } } }, 1000); } // 驗證是否是[0-1]的小數 export function isDecimal(rule, value, callback) { if (!value) { return callback(new Error('輸入不可以為空')); } setTimeout(() => { if (!Number(value)) { callback(new Error('請輸入數字')); } else { if (value < 0 || value > 1) { callback(new Error('請輸入[0,1]之間的數字')); } else { callback(); } } }, 1000); } // 驗證埠是否在[0,65535]之間 export function isPort(rule, value, callback) { if (!value) { return callback(new Error('輸入不可以為空')); } setTimeout(() => { if (value == '' || typeof(value) == undefined) { callback(new Error('請輸入埠值')); } else { const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/; const rsCheck = re.test(value); if (!rsCheck) { callback(new Error('請輸入在[0-65535]之間的埠值')); } else { callback(); } } }, 1000); } /* 小寫字母*/ export function validateLowerCase(str) { const reg = /^[a-z]+$/; return reg.test(str); }