常用的表单校验规则——邮箱/QQ/身份证号码/微信/电话/数字字母/整数/文本/密码等
1.邮箱校验规则
//邮箱校验
export const validateEmail = async (RuleObject, value) => {// const reg = new RegExp(/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+$/)const reg = new RegExp(/^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/)if (value) {if (!reg.test(value)) {return Promise.reject('请输入正确的邮箱');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
2.邮箱校验规则
export const validateEmail1 = async (RuleObject, value) => {const reg = new RegExp(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)if (value) {if (!reg.test(value)) {return Promise.reject('请输入正确的邮箱');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
3.QQ校验规则
//qq校验
export const validateQQ = async (RuleObject, value) => {const reg = new RegExp(/^[1-9][0-9]{4,10}$/);if (value) {if (!reg.test(value)) {return Promise.reject('请输入正确的QQ号');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
4.身份证号码校验规则
//身份证号校验
export const validateIdCard = async (RuleObject, value) => {const reg = new RegExp(/(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/);const reg1 = new RegExp(/^[A-Z]\d{7,11}$/)if (value) {if (!reg1.test(value)&&!reg.test(value)) {return Promise.reject('请输入正确的身份证号');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
5.微信校验规则
//微信校验
export const validateCharts = async (RuleObject, value) => {const reg = new RegExp(/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/);if (value) {if (!reg.test(value)) {return Promise.reject('请输入正确的微信号');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
6.电话校验规则
//电话校验
export const validatPhone = async (RuleObject, value) => {const reg = new RegExp(/^(?:(?:\+|00)86)?1[3-9]\d{9}$/);if (value) {if (!reg.test(value)) {return Promise.reject('请输入正确的手机号');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
7.银行卡号校验规则
//银行卡号校验
export const validatBankCard = async (RuleObject, value) => {const reg = new RegExp(/^[1-9]\d{9,29}$/);if (value) {if (!reg.test(value)) {return Promise.reject('请输入正确的银行卡号');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
8.数字字母校验规则
//数字字母校验
export const validatNumberLetter = async (RuleObject, value) => {const reg = new RegExp(/^([A-Z]|[a-z]|[\d])*$/);if (value) {if (!reg.test(value)) {return Promise.reject('请输入正确的工号');} else {return Promise.resolve();}} else {return Promise.resolve();}
}
9.整数校验规则
//整数校验
export const validateInitNumber = async (RuleObject, value, min, max) => {if (value !== '' && value !== null && value !== undefined) {if (!Number(value) && value !== 0) {return Promise.reject('请输入数字');} else if (!Number.isInteger(Number(value))) {return Promise.reject('请输入整数');} else {if (max) {value = Number(value);if (value > max || value < min) {return Promise.reject('请输入' + min + '到' + max + '之间的数值');} else {return Promise.resolve();}} else {return Promise.resolve();}}} else {return Promise.resolve();}
}
10.数字校验规则
//数字校验
export const validateNumber = async (RuleObject, value, min, max) => {if (value !== '' && value !== null && value !== undefined) {if (!Number(value) && value !== 0) {return Promise.reject('请输入数字');} else {if (max) {if (value > max || value < min) {return Promise.reject('请输入' + min + '到' + max + '之间的数值');} else {return Promise.resolve();}} else {return Promise.resolve();}}} else {return Promise.resolve();}
}
11.文本校验规则
//文本校验
export const validateInitTxt = async (RuleObject, value, min, max) => {if (value) {if (max) {if (value.length > max || value.length < min) {return Promise.reject('请输入' + min + '到' + max + '个字符');} else {return Promise.resolve();}} else {return Promise.resolve();}} else {return Promise.resolve();}
}
12.密码校验规则
//密码校验
export const validatePWD = async (RuleObject, value, min, max) => {if (value) {if (max) {if (value.length > max || value.length < min) {return Promise.reject('请输入' + min + '到' + max + '个字符');} else {return Promise.resolve();}} else {return Promise.resolve();}} else {return Promise.resolve();}
}
最后附上rules中的使用方法
import { validateEmail,validateInitTxt, validateQQ, validateIdCard, validatPhone,validateEmail1, validatBankCard, validateInitNumber,validateNumber,validateCharts,validatNumberLetter } from './validateForm.js';
export default {'姓名': [{required: true, message: '请输入名字'},{validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 30), trigger: 'change'}],'年龄': [{required: true, message: '请输入年龄'},{validator: async (RuleObject, value) => validateInitNumber(RuleObject, value, 16, 65), trigger: 'change'}],'身高': [{required: true, message: '请输入身高'},{validator: async (RuleObject, value) => validateInitNumber(RuleObject, value, 140, 210), trigger: 'change'}],'体重': [{required: true, message: '请输入体重'},{validator: async (RuleObject, value) => validateNumber(RuleObject, value, 35, 200), trigger: 'change'}],'邮件': [{required: true, message: '请输入邮件'},{validator: validateEmail, trigger: 'change'}],'邮箱': [{required: true, message: '请输入邮箱'},{validator: validateEmail1, trigger: 'change'}],'QQ': [{required: true, message: '请输入QQ'},{validator: validateQQ, trigger: 'change'}],'微信': [{required: true,message: '请输入微信'},{validator: validateCharts, trigger: 'change'}],'身份证': [{required: true, message: '请输入身份证号'},{validator: validateIdCard, trigger: 'change'}],'电话': [{required: true, message: '请输入联系电话'},{validator: validatPhone, trigger: 'change'}],'银行卡': [{required: true,message: '请输入银行卡卡号'},{validator: validatBankCard, trigger: 'change'}],'留言板': [{required: true,message: '请输入'},{validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 300), trigger: 'change'}],'输入框50': [{required: true,message: '请输入'},{validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 50), trigger: 'change'}],'输入框30': [{required: true,message: '请输入'},{validator: async (RuleObject, value) => validateInitTxt(RuleObject, value, 1, 30), trigger: 'change'}],'下拉框': [{required: true, message: '请选择'}],'整数': [{required: true,message: '请输入'},{validator: validateInitNumber, trigger: 'change'}],'组合':[{required: true,message: '请输入'},{validator: validatNumberLetter, trigger: 'change'},],'浮点数': [{required: true,message: '请输入'},{validator: validateNumber, trigger: 'change'}]}
相关文章:
常用的表单校验规则——邮箱/QQ/身份证号码/微信/电话/数字字母/整数/文本/密码等
1.邮箱校验规则 //邮箱校验 export const validateEmail async (RuleObject, value) > {// const reg new RegExp(/^[A-Za-z0-9\u4e00-\u9fa5][a-zA-Z0-9_-]$/)const reg new RegExp(/^[a-zA-Z0-9_-]([a-zA-Z0-9]\.)(com|cn|net|org)$/)if (value) {if (!reg.test(value…...
Mysql数据库 11.SQL语言 储存过程 下 储存过程管理和游标
一、存储过程管理 1.查询存储过程 查询所有储存过程 语法 show procedure status; 代码实现 #查询存储过程 show procedure status; 运行结果 加入条件查询储存过程 语法 show procedure status where db储存过程名; 代码实现 #查询带有条件的储存过程 查询名字为pro…...
如何在Visual Studio上创建项目并运行【超级详细】
工欲善其事,必先利其器。想要学好编程,首先要把手中的工具利用好,今天小编教一下大家如何在史上最强大的编译器--Visual Studio上创建项目。🍗 一.打开编译器🍗 双击你电脑上的vs,(2012,2019,2022)都行。&…...
《C++ Primer》第7章 类(二)
参考资料: 《C Primer》第5版《C Primer 习题集》第5版 7.4 类的作用域(P253) 每个类都有自己的作用域,在类的作用域之外,普通的数据和函数成员只能由对象、引用或指针使用成员访问运算符访问,类型成员则…...
git仓库代码克隆
说明: 由于服务项目的厂商不同且需求不断变化且交付周期临近,所以想把之前一个仓库的代码弄到一个新的仓库,待交付完毕后再进行代码整合。 第一步 先创建一个远程仓库用来放你要克隆的代码。 第二步 克隆一份裸版本代码库 git clone --ba…...
AM@向量代数@向量基本概念和向量线性运算
文章目录 abstract向量的基本概念向量向量的坐标分解式和坐标👺向量的模向量的长度(大小)👺零向量单位向量👺方向向量非零向量的单位向量正规化向量夹角👺 向量方向角和向量间夹角投影几何描述向量的线性运算向量的加减运算向量的…...
2023-11-08 LeetCode每日一题(最长平衡子字符串)
2023-11-08每日一题 一、题目编号 2609. 最长平衡子字符串二、题目链接 点击跳转到题目位置 三、题目描述 给你一个仅由 0 和 1 组成的二进制字符串 s 。 如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子…...
Web3.0的测试题
任务: 在前端开发一个查询UI,查询当前用户账户的ETH余额和指定ERC20合约中的余额 目标: UI框架指定使用 MUI (https://mui.com)需要查询到当前账户的ETH余额并展示在UI界面上需要输入ERC20合约地址后,查询到到当前账户在此ERC20…...
Javascript知识点详解:对象的继承、原型对象、原型链
目录 对象的继承 原型对象概述 构造函数的缺点 prototype 属性的作用 原型链 constructor 属性 instanceof 运算符 构造函数的继承 多重继承 对象的继承 面向对象编程很重要的一个方面,就是对象的继承。A 对象通过继承 B 对象,就能直接拥有 B …...
学之思开源考试系统部署至Centos7
学之思开源考试系统部署至Centos7 1、下载源码 源码下载: https://gitee.com/mindskip/xzs-mysql 数据库脚本下载: https://www.mindskip.net:999/ 2、项目打包 分别在\source\vue\xzs-student目录和source\vue\xzs-admin目录,执行前端打…...
如何利用浏览器的可见性API优化网站性能
最近在使用微软AI聊天工具Bing时,发现一个有趣的东西。我向它提问后,它在持续输出的过程中,如果我离开了当前它的浏览器会话,比如切屏,看当前浏览器的其它标签页,它会默认停止它的输出,等我回来…...
还不知道IP地址不够用是怎么被大牛们解决的?(NAT/NAPT, IPv6, DHCP)
文章目录 前言1. DHCP网络管理协议什么是 DHCPDHCP 两种分配机制 2. NAT网络地址转换协议什么是 NATNAT 技术使用NAT网络设备间如何通信两个内网设备相互通信不同内网中的设备相互通信NAT IP转换过程 NAPT 技术NAT 技术的缺陷 3. IPv6 协议什么是 IPv6 总结 前言 在之前的文章…...
使用决策树预测隐形眼镜类型
任务描述 本关任务:编写一个例子讲解决策树如何预测患者需要佩戴的隐形眼镜类型。使用小数据集,我们就可以利用决策树学到很多知识:眼科医生是如何判断患者需要佩戴的镜片类型,一旦理解了决策树的工作原理,我们甚至也…...
[ACTF2020 新生赛]BackupFile 1
题目环境: 好好好,让找源文件是吧?咱们二话不说直接扫它后台 使用dirsearch工具扫描网站后台(博主有这个工具的压缩包,可以私聊我领取)python dirsearch.py -u http://0d418151-ebaf-4f26-86b2-5363ed16530…...
解决vuex刷新数据丢失
Vuex 是一个 Vue.js 的状态管理库,它使得你可以在 Vue 组件之间共享状态。当你在 Vuex 中更新状态时,如果你遇到数据丢失或数据不一致的问题,可能需要进行深度复制或者使用其他方式来确保数据的完整性。 假设你有一个 Vuex 存储,…...
linux系统下读取当前硬盘的温度
这个其实很简单,借助于smartctl工具(Ubuntu默认安装好了),标红的部分就是当前温度,单位是摄氏度。 sudo smartctl -l scttempsts /dev/sda...
python 深度学习 解决遇到的报错问题8
本篇继python 深度学习 解决遇到的报错问题7-CSDN博客 目录 一、OSError: [WinError 127] 找不到指定的程序。 Error loading "D:\my_ruanjian\conda-myenvs\deeplearning\lib\site-packages\torch\lib\caffe2_detectron_ops.dll" or one of its dependencies. 二、…...
Linux pipe()系统调用示例
Linux系统调用pipe函数,创建一个pipe,通过传入的fd数组返回pipe的读、写两端。 其中fd[ 0 ]用于读,fd[ 1 ]用于写。 一个pipe是单向数据传输的,不用用于父子进程双向读写。创建2个pipe实现父子进程间的双线读写。 #include <u…...
音频中的采样率和比特率
音频中的采样率和比特率 采样频率千比特率音频比特率 采样频率 参考:https://blog.csdn.net/qq_38907791/article/details/88925224 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它…...
Python常用脚本
1.解压指定文件夹内的zip包,解压到当前位置 import os import zipfile# 指定文件夹路径 folder_path "/path/to/your/folder"# 获取文件夹下所有的zip文件 zip_files [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.e…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
