一些常见的表单校验正则

1,634 阅读2分钟

一些常见的表单校验函数

reg: 校验规则

emptymsg: 无内容提示

errormsg: 校验提示

rule 校验规则

value 表单值

callback 回调

function common (rule, value, callback, reg, emptymsg, errormsg) {
​
  if (value === '' || value === undefined) {
​
   // defRequired 是自定义的属性,在表单必须填写但是label标签前面没有*(星号)
​
   if (rule.required || rule.defRequired) {
​
      callback(new Error(emptymsg))
​
    } else {
​
      callback()
​
    }
​
  } else if (reg.test(value)) {
​
    callback()
​
  } else {
​
    callback(new Error(errormsg))
​
  }
​
}

删除左右两端的空格

export function trim(str) { // 删除左右两端的空格
​
    return str.replace(/(^\s*)|(\s*$)/g, '');
​
  }

不验证

// 不验证export function novalid (rule, value, callback) {
​
  const reg = /[\s\S]*/
​
  common(rule, value, callback, reg, '不能为空')
​
}

手机号验证

// 手机号export function phone (rule, value, callback) {
​
  const reg = /^1[3-9]\d{9}$/
​
  common(rule, value, callback, reg, '手机号不能为空', '请输入正确的手机号')
​
}

固定电话验证

// 固定电话export function fixedLineTelephone (rule, value, callback) {
​
  const reg = /^(0\d{2,3}-)?([2-9]\d{6,7})+(-\d{1,6})?$/
​
  common(rule, value, callback, reg, '固定电话不能为空', '输入的固定电话格式错误')
​
}

邮箱验证

// 邮箱export function email (rule, value, callback) {
​
  const reg = /^[a-z0-9]+([._\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
​
  common(rule, value, callback, reg, '邮箱不能为空', '格式错误')
​
}

纯数字验证

// 纯数字export function number (rule, value, callback) {
​
  const reg = /^[0-9]+$/
​
  common(rule, value, callback, reg, '不能为空', '请输入数字格式')
​
}

支付密码验证

// 支付数码export function paynumber (rule, value, callback) {
​
  const reg = /^[0-9]{6}$/
​
  common(rule, value, callback, reg, '不能为空', '请输入6位数字支付密码')
​
}

纯字母验证

// 纯字母export function letter (rule, value, callback) {
​
  const reg = /[a-zA-Z]+/
​
  common(rule, value, callback, reg, '不能为空', '格式错误')
​
}

账号为6-20位数字字母组合验证

// 账号验证export function numletter (rule, value, callback) {
​
  const reg = /^[0-9A-Za-z]{6,20}$/
​
  common(rule, value, callback, reg, '账号不能为空', '账号为6-20位数字字母组合')
​
}

密码6-12位验证

// 密码
let passwordValue
let modifyPasswords
export function password (rule, value, callback) {
​
  passwordValue = value
​
  const reg = /^[0-9A-Za-z~!@#$%^&*]{6,16}$/
​
  common(rule, value, callback, reg, '密码不能为空', '密码格式错误')
​
}

再次密码确认

// 再次密码确认
let passwordValue
let modifyPasswords
export function checkPassword (rule, value, callback) {
​
  const reg = **new** *RegExp*('^' + passwordValue + '$', 'g')
​
  common(rule, value, callback, reg, '请输入确认密码', '两次密码不一致')
​
}

密码为8~16位且必须包含数字,字母,特殊符号中的两种

// 密码
let passwordValue
let modifyPasswords
export function modifyPassword (rule, value, callback) {
​
  modifyPasswords = value
​
  const reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{8,16}$/
​
  common(rule, value, callback, reg, '不能为空', '密码为8~16位且必须包含数字,字母,特殊符号中的两种')
​
}
// 再次密码确认export function checkModifyPassword (rule, value, callback) {
​
  const reg = **new** *RegExp*('^' + modifyPasswords + '$', 'g')
​
  common(rule, value, callback, reg, '不能为空', '两次密码不一致')
​
}

图形验证码4-6位验证

// 图形验证码export function pricture (rule, value, callback) {
​
  const reg = /^[0-9A-Za-z]{4,6}$/
​
  common(rule, value, callback, reg, '验证码不能为空', '请输入正确的验证码格式')
​
}

英文和中文和数字 [\u4e00-\u9fa5]

// 英文和中文和数字 [\u4e00-\u9fa5]export function letterNumberWord (rule*, value, callback) {
​
  const reg = /^[0-9A-Za-z\u4e00-\u9fa5]+$/
​
  common(rule, value, callback, reg, '不能为空', '格式错误')
​
}

大于0的正整数

// 大于0的正整数export function positiveInteger (rule, value, callback) {
​
  const reg = /^[0-9]*[1-9][0-9]*$/
​
  common(rule, value, callback, reg, '不能为空', '必须为大于0的正整数')
​
}

非负整数

// 非负整数export function nonnegativeInteger (rule, value, callback) {
​
  const reg = /^\d+$/
​
  common(rule, value, callback, reg, '不能为空', '请输入非负整数')
​
}