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 相关文章推荐
javascript 去字符串空格终极版(支持utf8)
Nov 14 Javascript
用JS写的一个TableView控件代码
Jan 23 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 Javascript
模拟一个类似百度google的模糊搜索下拉列表
Apr 15 Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
Nov 06 Javascript
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
微信小程序实现分享商品海报功能
Sep 30 Javascript
Vue如何获取数据列表展示
Dec 11 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
JS 5种遍历对象的方式
Jun 16 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
PHP中each与list用法分析
2016/01/08 PHP
flash 得到自身url参数的代码
2009/11/15 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
python flask搭建web应用教程
2019/11/19 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
python字符串判断密码强弱
2020/03/18 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
幼教简历自我评价
2014/01/28 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS