常用的表单校验规则——邮箱/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…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
