Element-ui如何抽出公共表單驗證

℡北瞳少年、發表於2024-03-21

1、將驗證加到欄位上,上面的prop標籤就是用來驗證的名稱

2、定義rules公共檔案

/**
 * Form表單驗證
 * author: jiangfan
 * @type {RegExp}
 */
// 電話
let phoneReg = /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/
// 身份證號
let idCardReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
// 郵箱
let emailReg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/

let FormValidate = (function () {
  function FormValidate() {}
  // From表單驗證規則  可用於公用的校驗部分
  FormValidate.Form = function () {
    return {
      // 郵箱的驗證規則
      Email(rule, value, callback) {
        if (value !== '') {
          if (!emailReg.test(value)) {
            callback(new Error('郵箱格式不正確'))
          } else {
            callback()
          }
        } else {
          callback()
        }
      },
      // 電話號碼的驗證
      Phone(rule, value, callback) {
        if (!value) {
          return callback(new Error('請輸入手機號碼'))
        }
        if (!phoneReg.test(value)) {
          callback(new Error('手機格式不正確'))
        } else {
          callback()
        }
      },
      // 身份證的驗證規則
      IdCard(rule, value, callback) {
        if (!value) {
          return callback(new Error('身份證不能為空'))
        }
        if (!idCardReg.test(value)) {
          callback(new Error('請輸入正確的身份證號碼'))
        } else {
          callback()
        }
      }
    }
  }

  return FormValidate
}())

exports.FormValidate = FormValidate;

3、引入vue頁面

4、加入驗證(date的return 的 rules裡面)

相關文章