Skip to content

element校验

身份证

JavaScript
// 检查身份证校验位
export const isChinaIDCard = (str) => {
  var chinaIDCardRegExp =
    /^[1-9]\d{5}(19|20)\d{2}(0\d|1[0-2])([012]\d|3[01])\d{3}[0-9X]$/
  if (!chinaIDCardRegExp.test(str)) {
    return false
  }
  var i,
    lastDigit,
    total = 0
  var numbers = str.split('')
  for (i = 0; i < 17; i++) {
    total += parseInt(numbers[i], 10) * (Math.pow(2, 17 - i) % 11)
  }
  lastDigit = (12 - (total % 11)) % 11
  if (lastDigit === 10) {
    lastDigit = 'X'
  }
  return lastDigit.toString() === numbers[17].toUpperCase()
}

// ele-form自定义校验函数
export function checkIdentity(rule, value, callback) {
  let reg18 =
    /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  let reg15 =
    /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
  if (value == '' || value == undefined || value == null) {
    callback()
  } else if ((reg18.test(value) && isChinaIDCard(value)) || reg15.test(value)) {
    callback()
  } else {
    callback(new Error('请输入正确身份证号'))
  }
}

手机号

JavaScript
// ele-form自定义校验函数
export function checkPhone(rule, value, callback) {
  if (value == '' || value == undefined || value == null) {
    callback()
  } else if (
    /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(
      value
    )
  ) {
    callback()
  } else {
    callback(new Error('请输入正确手机号格式'))
  }
}

手机号数组

JavaScript
// ele-form自定义校验函数
export function checkPhoneList(rule, value, callback) {
  if (
    !value?.length ||
    (value.length == 1 &&
      (value[0] == '' || value[0] == null || value[0] == undefined))
  ) {
    callback()
  } else if (
    value.every((v) => {
      return /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(
        v
      )
    })
  ) {
    callback()
  } else {
    callback(new Error('请输入正确手机号格式'))
  }
}

座机号

JavaScript
// ele-form自定义校验函数
export function checkPhoneList(rule, value, callback) {
  if (
    !value?.length ||
    (value.length == 1 &&
      (value[0] == '' || value[0] == null || value[0] == undefined))
  ) {
    callback()
  } else if (
    value.every((v) => {
      return /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(
        v
      )
    })
  ) {
    callback()
  } else {
    callback(new Error('请输入正确手机号格式'))
  }
}

金额

JavaScript
// ele-form自定义校验函数
export function checkMoney(rule, value, callback) {
  if (value == '' || value == undefined || value == null) {
    callback()
  } else if (/^\d+(\.\d{1,2})?$/.test(value)) {
    callback()
  } else {
    callback(new Error('请输入正确格式'))
  }
}

利率

JavaScript
// ele-form自定义校验函数
export function checkRate(rule, value, callback) {
  if (value == '' || value == undefined || value == null) {
    callback()
  } else if (/^\d+(\.\d{1,3})?$/.test(value)) {
    callback()
  } else {
    callback(new Error('请输入正确格式'))
  }
}

邮箱

JavaScript
// ele-form自定义校验函数
export function checkEmail(rule, value, callback) {
  if (value == '' || value == undefined || value == null) {
    callback()
  } else if (
    /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/.test(
      value
    )
  ) {
    callback()
  } else {
    callback(new Error('请输入电子邮箱正确格式'))
  }
}