2、el-validator正则表达式

简介: 2、el-validator正则表达式
export default function validator(rule, value, callback) {
  if (!value && !rule.required) {
    callback()
  }
  if (regexping(rule.regexp, value)) {
    callback()
  } else {
    return callback(new Error(errText))
  }
}
var errText = ''
function regexping(regexp, value) {
  if (regexp) {
    let reg
    if (regexp === 'cn') { // 中文
      reg = /^[\u0391-\uFFE5]+$/
      errText = '仅允许中文汉字'
    } else if (regexp === 'hasCn') { // 含有中文
      reg = /.*[\u4e00-\u9fa5].*/
      errText = '必须含有中文'
    } else if (regexp === 'noCn') { // 不含中文
      reg = /^[^\u4e00-\u9fa5]*$/
      errText = '不允许有中文'
    } else if (regexp === 'noSpecialCharacter') { // 不能有特殊字符
      reg = /^[\u4E00-\u9FA5A-Za-z0-9_]+$/
      errText = '不允许输特殊字符'
    } else if (regexp === 'en') { // 英文字母
      reg = /^[a-zA-Z]+$/
      errText = '仅允许英文字母'
    } else if (regexp === 'passOne') { // 英文或数字 最多20位
      reg = /^([a-zA-Z]|[0-9])+$/
      errText = '仅允许英文或数字'
    } else if (regexp === 'En+Number') { // 任意英文+数字
      reg = /^[a-zA-Z0-9]+$/
      errText = '仅允许英文及数字'
    } else if (regexp === 'decimal') { // 小数浮点数类型
      reg = /^\d+(\.\d+)?$/
      errText = '必须是小数'
    } else if (regexp === 'integer') { // 整数类型 - 正负都可以
      reg = /^-?[1-9]\d+$/
      errText = '必须是整数'
    } else if (regexp === '+integer') { // 整数类型 - 正数
      reg = /^[0-9]*[1-9][0-9]*$/
      errText = '必须是正整数'
    } else if (regexp === '0+integer') { // 0+正数
      reg = /^(0|\+?[1-9][0-9]*)$/
      errText = '必须是大于等于0的整数'
    } else if (regexp === 'number') { // 数字类型
      reg = /^-?[0-9]\d+$/
      errText = '必须是数字'
    } else if (regexp === 'email') { // 邮箱
      reg = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/
      errText = '邮箱格式错误'
    } else if (regexp === 'phone') { // 手机 18165221849
      reg = /^1\d{10}$/
      errText = '必须是手机号码'
    } else if (regexp === 'tel') { // 电话 0731-5632575
      reg = /^0\d{2,3}-?\d{7,8}$/
      errText = '必须是电话号码'
    } else if (regexp === 'phoneAndTel') { // 手机+电话
      reg = /^1\d{10}$|^0\d{2,3}-?\d{7,8}$/
      errText = '必须是手机或电话号码'
    } else if (regexp === 'postcode') { // 邮政编码
      reg = /^\d{6}$/
      errText = '必须是6位数字'
    } else if (regexp === 'http') { // http (支持 - :post,www,ip,http,https)
      reg = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/
      errText = '必须是正确url地址'
    } else if (regexp === 'ip') { // ip地址
      reg = /(\d+)\.(\d+)\.(\d+)\.(\d+)/
      errText = '必须是正确ip格式'
    } else if (regexp === 'identityCard') { // 身份证
      reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
      errText = '必须是正确身份证'
    } else if (regexp === 'money') {
      reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
      value += ''
      errText = '请输入正确的金额'
    } else if (regexp === 'jsz') {
      reg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(\d|x|X)$/
      errText = '请输入正确的驾驶证号码'
    } else if (regexp === 'jgz') {
      reg = /^[0-9]{8}$/
      errText = '请输入正确的军官证(士兵证)号码'
    } else if (regexp === 'hz') {
      reg = /^[a-zA-Z0-9]{5,17}$/
      errText = '请输入正确的护照号码'
    } else if (regexp === 'backCard') {
      reg = /^([1-9]{1})(\d{15}|\d{16}|\d{18})$/
      errText = '请输入正确的银行卡号'
    }
    if (!reg.test(value)) { // item 验证不通过
      return false
    } else {
      return true
    }
  } else {
    return true
  }
}
相关文章
|
7月前
el-tree在el-form中通过rules进行校验
el-tree在el-form中通过rules进行校验
215 1
|
JavaScript 容器
4.el与data的两种写法
el与data的两种写法
94 0
|
存储 Java
EL和JSTL
EL和JSTL
139 0
EL和JSTL
|
存储 JavaScript Java
el 表达式以及JSTL详解
JavaEE中的el 表达式以及JSTL详解
el 表达式以及JSTL详解
|
JavaScript
el与data的两种写法
el与data的两种写法
84 0
|
XML SQL JavaScript
JavaWeb - JSTL、EL 表达式
JavaWeb - JSTL、EL 表达式
212 0
JavaWeb - JSTL、EL 表达式
【EL与JSTL表达式】学习JSP之后,这是你不得不知道的技术
之前我们已经完成了对JSP的学习,但是还有一些其他的东西我们必须得知道,今天我们来学习EL与JSTL表达式。它们将简化JSP的书写并且使得JSP更加强大。但是如果你对JSP一无所知的话建议你先去看一下之前入门JSP的文章。
【EL与JSTL表达式】学习JSP之后,这是你不得不知道的技术
【Nest教程】数据验证class-validator
【Nest教程】数据验证class-validator
1074 0
【Nest教程】数据验证class-validator
|
设计模式 前端开发 Java
EL(Express Lanuage)表达式 与 JSTL(JSP Standard Tag Library),JSP标准标签库
EL(Express Lanuage)表达式 与 JSTL(JSP Standard Tag Library),JSP标准标签库
150 0
EL(Express Lanuage)表达式 与 JSTL(JSP Standard Tag Library),JSP标准标签库