项目中常用的正则校验

const moneyReg = /(^(([1-9]([0-9]+)?)|(0{1}))(\.[0-9]{1,4})?$)/ // 金额
const phoneReg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/ // 手机号
const codeReg = /^(?![0-9]*$)(?![a-zA-Z]*$)[a-zA-Z0-9]{6,20}$/ // 账号
const numberReg = /^\d+$|^\d+[.]?\d+$/ // 数字
const passwordReg = /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/ // 密码
const contactsReg = /^[\u0391-\uFFE5A-Za-z]+$/ // 联系人
const IDReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ // 身份证
const emailReg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/ // 邮箱
const numberTwoDecimalReg = /^([1-9]+[\d]*(.[0-9]{1,2})?)$/ //数字类型 最多保留两位小数

export function FormValidate () {
  return {
    /** money 金额的验证规则 */
    validateMoney (rule, value, callback) {
      if (!moneyReg.test(value)) {
        return callback(new Error('金额格式错误,为数字且不超过四位小数!'))
      } else {
        return callback()
      }
    },
    // 管理层跟投比例验证规则
    proportion (rule, value, callback) {
      if (!moneyReg.test(value)) {
        return callback(new Error('金额格式错误,为数字且不超过四位小数!'))
      } else if (value <= 0) {
        return callback(new Error('跟投比例不得小于0!'))
      }
      else {
        return callback()
      }
    },
    /** phone 电话号码的验证 */
    validatePhone (rule, value, callback) {
      if (!value) {
        return callback(new Error('请输入手机号码'))
      }
      if (!phoneReg.test(value)) {
        callback(new Error('手机格式不正确'))
      } else {
        callback()
      }
    },
    /** 账号的验证规则 */
    validateCode (rule, value, callback) {
      if (!value) {
        return callback(new Error('请输入账号'))
      }
      if (!codeReg.test(value)) {
        callback(new Error('账号必须为6-20位字母和数字组合'))
      } else {
        callback()
      }
    },

    /** number 只能数字的验证 */
    validateNumber (rule, value, callback) {
      if (value !== '') {
        if (!numberReg.test(value)) {
          callback(new Error('必须为数字'))
        } else {
          callback()
        }
      } else {
        callback()
      }
    },

    /** 数字类型且不超过两位小数验证规则 */
    validateNumberTwoDecimal (rule, value, callback) {
      if (!numberTwoDecimalReg.test(value)) {
        callback(new Error('数字类型最多两位小数!'))
      } else {
        callback()
      }
    },

    /** 密码的验证 */
    validatePsdReg (rule, value, callback) {
      if (!value) {
        return callback(new Error('请输入密码'))
      }
      if (!passwordReg.test(value)) {
        callback(new Error('请输入6-20位英文字母、数字或者符号(除空格),且字母、数字和标点符号至少包含两种'))
      } else {
        callback()
      }
    },

    /** 联系人 */
    validateContacts (rule, value, callback) {
      if (!value) {
        return callback(new Error('请输入联系人'))
      }
      if (!contactsReg.test(value)) {
        callback(new Error('联系人不可输入特殊字符'))
      } else {
        callback()
      }
    },

    /** 邮箱的验证规则 */
    validateEmail (rule, value, callback) {
      if (value !== '') {
        if (!emailReg.test(value)) {
          callback(new Error('邮箱格式不正确'))
        } else {
          callback()
        }
      } else {
        callback()
      }
    },

    /** 身份证的验证规则 */
    validateID (rule, value, callback) {
      if (!value) {
        return callback(new Error('身份证不能为空'))
      }
      if (!IDReg.test(value)) {
        callback(new Error('请输入正确的二代身份证号码'))
      } else {
        callback()
      }
    },

    /** 其他资产数组验证 */
    otherAssetsArr (rule, value, callback) {
      if (!value) {
        return callback(new Error('身份证不能为空'))
      }
      if (!IDReg.test(value)) {
        callback(new Error('请输入正确的二代身份证号码'))
      } else {
        callback()
      }
    },

    // 表格里面上传文件验证必填项
    validateTableUploadFiles (rule, value, callback) {
      if (value) {
        return callback()
      } else {
        return callback(new Error('请按要求上传文件!'))
      }
    },
    // 判断数字范围
    numberSizeRong (rule, value, callback) {
      const min = 0, max = 9999
      if (!value) {
        return callback(new Error('请输入' + min + '~' + max + '之间的数字'))
      }
      if (!numberReg.test(value)) {
        callback(new Error('必须为数字'))
      } else if (value < min || value > max) {
        callback(new Error('请输入' + min + '~' + max + '之间的数字'))
      } else {
        callback()
      }
    },
  }
}

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上小阿鑫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值