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
  }
}
相关文章
|
4月前
|
资源调度 JavaScript
一文了解Validator库
总的来说,Validator库是一种强大而灵活的数据验证工具。无论你是在开发新的web应用,还是在维护现有的项目,都可以通过使用Validator库来提高数据的质量和安全性。
39 1
|
6月前
el-tree在el-form中通过rules进行校验
el-tree在el-form中通过rules进行校验
203 1
|
前端开发 JavaScript API
Validate表单验证
Validate表单验证
|
6月前
|
JavaScript
Vue element form validator
Vue element form validator
50 0
|
Java
JavaWeb|认识表达式语言(EL)
JavaWeb|认识表达式语言(EL)
106 0
|
存储 Java 编译器
JSP表达式语言(EL)
JSP表达式语言(EL)
97 0
|
存储 Java
EL和JSTL
EL和JSTL
134 0
EL和JSTL
|
存储 JavaScript Java
el 表达式以及JSTL详解
JavaEE中的el 表达式以及JSTL详解
el 表达式以及JSTL详解
|
XML SQL JavaScript
JavaWeb - JSTL、EL 表达式
JavaWeb - JSTL、EL 表达式
205 0
JavaWeb - JSTL、EL 表达式