博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue如何使用rules对表单字段进行校验
阅读量:4599 次
发布时间:2019-06-09

本文共 7866 字,大约阅读时间需要 26 分钟。

基于element-ui

1、在代码中,添加属性::rule

并且,在
中添加prop属性,对应rules中的规则

 

 

 

2、新开一个文件夹(validate.js)定义验证规则

 

3、在页面(index.vue)中引入验证规则定义的文件,并在export default中定义rule规则,使用语法:{validator:验证方法,trigger:验证触发}

  

 

3、以下是validator.js文件的部分验证方法

/*是否合法IP地址*/export function validateIP(rule, value,callback) {  if(value==''||value==undefined||value==null){    callback();  }else {    const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;    if ((!reg.test(value)) && value != '') {      callback(new Error('请输入正确的IP地址'));    } else {      callback();    }  }}/* 是否手机号码或者固话*/export function validatePhoneTwo(rule, value, callback) {  const reg = /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/;;  if (value == '' || value == undefined || value == null) {    callback();  } else {    if ((!reg.test(value)) && value != '') {      callback(new Error('请输入正确的电话号码或者固话号码'));    } else {      callback();    }  }}/* 是否固话*/export function validateTelphone(rule, value,callback) {  const reg =/0\d{2}-\d{7,8}/;  if(value==''||value==undefined||value==null){    callback();  }else {    if ((!reg.test(value)) && value != '') {      callback(new Error('请输入正确的固话(格式:区号+号码,如010-1234567)'));    } else {      callback();    }  }}/* 是否手机号码*/export function validatePhone(rule, value,callback) {  const reg =/^[1][3,4,5,7,8][0-9]{9}$/;  if(value==''||value==undefined||value==null){    callback();  }else {    if ((!reg.test(value)) && value != '') {      callback(new Error('请输入正确的电话号码'));    } else {      callback();    }  }}/* 是否身份证号码*/export function validateIdNo(rule, value,callback) {  const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;  if(value==''||value==undefined||value==null){    callback();  }else {    if ((!reg.test(value)) && value != '') {      callback(new Error('请输入正确的身份证号码'));    } else {      callback();    }  }}/* 是否邮箱*/export function validateEMail(rule, value,callback) {  const reg =/^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;  if(value==''||value==undefined||value==null){    callback();  }else{    if (!reg.test(value)){      callback(new Error('请输入正确的邮箱地址'));    } else {      callback();    }  }}/* 合法uri*/export function validateURL(textval) {  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;  return urlregex.test(textval);}/*验证内容是否英文数字以及下划线*/export function isPassword(rule, value, callback) {  const reg =/^[_a-zA-Z0-9]+$/;  if(value==''||value==undefined||value==null){    callback();  } else {    if (!reg.test(value)){      callback(new Error('密码仅由英文字母,数字以及下划线组成'));    } else {      callback();    }  }}/*自动检验数值的范围*/export function checkMax20000(rule, value, callback) {  if (value == '' || value == undefined || value == null) {    callback();  } else if (!Number(value)) {    callback(new Error('请输入[1,20000]之间的数字'));  } else if (value < 1 || value > 20000) {    callback(new Error('请输入[1,20000]之间的数字'));  } else {    callback();  }}//验证数字输入框最大数值,32767export function checkMaxVal(rule, value,callback) {  if (value < 0 || value > 32767) {    callback(new Error('请输入[0,32767]之间的数字'));  } else {    callback();  }}//验证是否1-99之间export function isOneToNinetyNine(rule, value, callback) {  if (!value) {    return callback(new Error('输入不可以为空'));  }  setTimeout(() => {    if (!Number(value)) {      callback(new Error('请输入正整数'));    } else {      const re = /^[1-9][0-9]{0,1}$/;      const rsCheck = re.test(value);      if (!rsCheck) {        callback(new Error('请输入正整数,值为【1,99】'));      } else {        callback();      }    }  }, 0);}// 验证是否整数export function isInteger(rule, value, callback) {  if (!value) {    return callback(new Error('输入不可以为空'));  }  setTimeout(() => {    if (!Number(value)) {      callback(new Error('请输入正整数'));    } else {      const re = /^[0-9]*[1-9][0-9]*$/;      const rsCheck = re.test(value);      if (!rsCheck) {        callback(new Error('请输入正整数'));      } else {        callback();      }    }  }, 0);}// 验证是否整数,非必填export function isIntegerNotMust(rule, value, callback) {  if (!value) {    callback();  }  setTimeout(() => {    if (!Number(value)) {      callback(new Error('请输入正整数'));    } else {      const re = /^[0-9]*[1-9][0-9]*$/;      const rsCheck = re.test(value);      if (!rsCheck) {        callback(new Error('请输入正整数'));      } else {        callback();      }    }  }, 1000);}// 验证是否是[0-1]的小数export function isDecimal(rule, value, callback) {  if (!value) {    return callback(new Error('输入不可以为空'));  }  setTimeout(() => {    if (!Number(value)) {      callback(new Error('请输入[0,1]之间的数字'));    } else {      if (value < 0 || value > 1) {        callback(new Error('请输入[0,1]之间的数字'));      } else {        callback();      }    }  }, 100);}// 验证是否是[1-10]的小数,即不可以等于0export function isBtnOneToTen(rule, value, callback) {  if (typeof value == 'undefined') {    return callback(new Error('输入不可以为空'));  }  setTimeout(() => {    if (!Number(value)) {      callback(new Error('请输入正整数,值为[1,10]'));    } else {      if (!(value == '1' || value == '2' || value == '3' || value == '4' || value == '5' || value == '6' || value == '7' || value == '8' || value == '9' || value == '10')) {        callback(new Error('请输入正整数,值为[1,10]'));      } else {        callback();      }    }  }, 100);}// 验证是否是[1-100]的小数,即不可以等于0export function isBtnOneToHundred(rule, value, callback) {  if (!value) {    return callback(new Error('输入不可以为空'));  }  setTimeout(() => {    if (!Number(value)) {      callback(new Error('请输入整数,值为[1,100]'));    } else {      if (value < 1 || value > 100) {        callback(new Error('请输入整数,值为[1,100]'));      } else {        callback();      }    }  }, 100);}// 验证是否是[0-100]的小数export function isBtnZeroToHundred(rule, value, callback) {  if (!value) {    return callback(new Error('输入不可以为空'));  }  setTimeout(() => {    if (!Number(value)) {      callback(new Error('请输入[1,100]之间的数字'));    } else {      if (value < 0 || value > 100) {        callback(new Error('请输入[1,100]之间的数字'));      } else {        callback();      }    }  }, 100);}// 验证端口是否在[0,65535]之间export function isPort(rule, value, callback) {  if (!value) {    return callback(new Error('输入不可以为空'));  }  setTimeout(() => {    if (value == '' || typeof(value) == undefined) {      callback(new Error('请输入端口值'));    } else {      const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;      const rsCheck = re.test(value);      if (!rsCheck) {        callback(new Error('请输入在[0-65535]之间的端口值'));      } else {        callback();      }    }  }, 100);}// 验证端口是否在[0,65535]之间,非必填,isMust表示是否必填export function isCheckPort(rule, value, callback) {  if (!value) {    callback();  }  setTimeout(() => {    if (value == '' || typeof(value) == undefined) {      //callback(new Error('请输入端口值'));    } else {      const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;      const rsCheck = re.test(value);      if (!rsCheck) {        callback(new Error('请输入在[0-65535]之间的端口值'));      } else {        callback();      }    }  }, 100);}/* 小写字母*/export function validateLowerCase(str) {  const reg = /^[a-z]+$/;  return reg.test(str);}/*保留2为小数*/export function validatetoFixedNew(str) {  return str ;}/* 验证key*/// export function validateKey(str) {
// var reg = /^[a-z_\-:]+$/;// return reg.test(str);// }/* 大写字母*/export function validateUpperCase(str) { const reg = /^[A-Z]+$/; return reg.test(str);}/* 大小写字母*/export function validatAlphabets(str) { const reg = /^[A-Za-z]+$/; return reg.test(str);}

 

 

 

转载于:https://www.cnblogs.com/luoxuemei/p/9295506.html

你可能感兴趣的文章
Java 日志组件(三)
查看>>
iphone中button按钮显示为圆形解决
查看>>
SharedPreferences.Editor 的apply()与commit()方法的区别
查看>>
页面编码
查看>>
gulpfile.js(编译sass,压缩图片,自动刷新浏览器)
查看>>
用于解决用户多线路访问的nginx cross isp module
查看>>
vs启动项目提示Web 服务器被配置为不列出此目录的内容。
查看>>
CF140E New Year Garland
查看>>
LeetCode--Remove Linked List Elements--JavaScript
查看>>
[android]深入理解findViewById原理
查看>>
实验四
查看>>
easypoi 一行代码搞定excel导入导出
查看>>
JumpServer安装与使用
查看>>
前端构建工具gulp
查看>>
ref:CodeIgniter框架内核设计缺陷可能导致任意代码执行
查看>>
1475.ip数据包解析
查看>>
JAVA 笔记(一)
查看>>
jdk+Tomcat部署安装
查看>>
js 循环读取 json的值
查看>>
c# 范型Dictionary实用例子
查看>>