Vue中常用rules校验规则(实例代码)


Posted in Javascript onNovember 14, 2019

在 vue开发中,难免遇到各种表单校验,这里整理了网络上和自己平时高频率用到的一些校验方法。如果错误欢迎指出,后期不断补充更新。

1、是否合法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();
 }
 }
}

2、是否手机号码或者固话

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();
 }
 }
}

3、是否固话

export function validateTelphone(rule, value,callback) {
 const reg =/0\d{2,3}-\d{7,8}/;
 if(value==''||value==undefined||value==null){
 callback();
 }else {
 if ((!reg.test(value)) && value != '') {
 callback(new Error('请输入正确的固定电话)'));
 } else {
 callback();
 }
 }
}

4、是否手机号码

export function validatePhone(rule, value,callback) {
 const reg =/^[1][3-9][0-9]{9}$/;
 if(value==''||value==undefined||value==null){
 callback();
 }else {
 if ((!reg.test(value)) && value != '') {
 callback(new Error('请输入正确的电话号码'));
 } else {
 callback();
 }
 }
}

5、是否身份证号码

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();
 }
 }
}

6、是否邮箱

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();
 }
 }
}

7、合法url

export function validateURL(url) {
 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(url);
}

8、验证内容是否包含英文数字以及下划线

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();
 }
 }
}

9、自动检验数值的范围

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();
 }
}

10、验证数字输入框最大数值

export function checkMaxVal(rule, value,callback) {
 if (value < 0 || value > 最大值) {
 callback(new Error('请输入[0,最大值]之间的数字'));
 } else {
 callback();
 }
}

11、验证是否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);
}

12、验证是否整数

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);
}

13、验证是否整数,非必填

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);
}

14、 验证是否是[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);
}

15、 验证是否是[1-10]的小数,即不可以等于0

export 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);
}

16、验证是否是[1-100]的小数,即不可以等于0

export 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);
}

17、验证是否是[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);
}

18、验证端口是否在[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);
}

19、验证端口是否在[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);
}

20、小写字母

export function validateLowerCase(val) {
 const reg = /^[a-z]+$/;
 return reg.test(val);
}

22、两位小数验证

const validateValidity = (rule, value, callback) => {
 if (!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)) {
 callback(new Error('最多两位小数!!!'));
 } else {
 callback();
 }
};

23、是否大写字母

export function validateUpperCase(val) {
 const reg = /^[A-Z]+$/;
 return reg.test(val);
}

24、是否大小写字母

export function validatAlphabets(val) {
 const reg = /^[A-Za-z]+$/;
 return reg.test(val);
}

25、密码校验

export const validatePsdReg = (rule, value, callback) => {
 if (!value) {
 return callback(new Error('请输入密码'))
 }
 if (!/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/.test(value)) {
 callback(new Error('请输入6-20位英文字母、数字或者符号(除空格),且字母、数字和标点符号至少包含两种'))
 } else {
 callback()
 }
}

26、中文校验

export const validateContacts = (rule, value, callback) => {
 if (!value) {
 return callback(new Error('请输入中文'))
 }
 if (!/^[\u0391-\uFFE5A-Za-z]+$/.test(value)) {
 callback(new Error('不可输入特殊字符'))
 } else {
 callback()
 }
}

27、身份证校验

export const ID = (rule, value, callback) => {
 if (!value) {
  return callback(new Error('身份证不能为空'))
 }
 if (! /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
  callback(new Error('请输入正确的二代身份证号码'))
 } else {
  callback()
 }
}

28、 账号校验

export const validateCode = (rule, value, callback) => {
 if (!value) {
 return callback(new Error('请输入账号'))
 }
 if (!/^(?![0-9]*$)(?![a-zA-Z]*$)[a-zA-Z0-9]{6,20}$/.test(value)) {
 callback(new Error('账号必须为6-20位字母和数字组合'))
 } else {
 callback()
 }
}

29 、纯数字校验

export const validateNumber = (rule, value, callback) => {
 let numberReg = /^\d+$|^\d+[.]?\d+$/
 if (value !== '') {
  if (!numberReg.test(value)) {
   callback(new Error('请输入数字'))
  } else {
   callback()
  }
 } else {
  callback(new Error('请输入值'))
 }
}

30、最多一位小数

const onePoint = (rule, value, callback) => {
 if (!/^[0-9]+([.]{1}[0-9]{1})?$/.test(value)) {
 callback(new Error('最多一位小数!!!'));
 } else {
 callback();
 }
};

总结

以上所述是小编给大家介绍的Vue中常用rules校验规则,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
ExtJs使用IFrame的实现代码
Mar 24 Javascript
Jquery easyui 下loaing效果示例代码
Aug 12 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
May 04 Javascript
JavaScript 里的类数组对象
Apr 08 Javascript
Vue.js双向绑定操作技巧(初级入门)
Dec 27 Javascript
JavaScript之promise_动力节点Java学院整理
Jul 03 Javascript
JS实现遍历不规则多维数组的方法
Mar 21 Javascript
详解如何在你的Vue项目配置vux
Jun 04 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
Jul 05 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 Javascript
浅析Vue 防抖与节流的使用
Nov 14 #Javascript
微信小程序tabBar设置实例解析
Nov 14 #Javascript
layui清除radio的选中状态实例
Nov 14 #Javascript
在vue中利用v-html按分号将文本换行的例子
Nov 14 #Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 #Javascript
关于vue.js中实现方法内某些代码延时执行
Nov 14 #Javascript
用Node写一条配置环境的指令
Nov 14 #Javascript
You might like
网友原创的PHP模板类代码
2008/09/07 PHP
使用PHP编写的SVN类
2013/07/18 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
原生js实现验证码功能
2017/03/16 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python文件名和文件路径操作实例
2017/09/29 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
Python处理session的方法整理
2019/08/29 Python
python序列类型种类详解
2020/02/26 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
硕士研究生自我鉴定范文
2013/12/27 职场文书
教师新年寄语
2014/04/03 职场文书
营销团队口号
2014/06/06 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
班主任开场白
2015/06/01 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android