Vue3记录校验工具类:validata.ts

在vue文件使用:

import { validateNull } from '/@/utils/validata';
validateNull('需要校验的数据')

validata.ts文件:

/*** 判断是否为空* @param val 数据*/
export const validateNull = (val: any) => {if (typeof val === 'boolean') {return false;}if (typeof val === 'number') {return false;}if (val instanceof Array) {if (val.length === 0) return true;} else if (val instanceof Object) {if (JSON.stringify(val) === '{}') return true;} else {if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '') return true;return false;}return false;
};export const rule = {/*** 校验 请输入中文、英文、数字包括下划线* 名称校验*/validatorNameCn(rule: any, value: any, callback: any) {const acount = /^[\u4E00-\u9FA5A-Za-z0-9_]+$/;if (value && !acount.test(value)) {callback(new Error('请输入中文、英文、数字包括下划线'));} else {callback();}},/*** 校验 请输入大写英文、下划线* 名称校验*/validatorCapital(rule: any, value: any, callback: any) {const acount = /^[A-Z_]+$/;if (value && !acount.test(value)) {callback(new Error('请输入大写英文、下划线'));} else {callback();}},/*** 校验 请输入小写英文、下划线* 名称校验*/validatorLowercase(rule: any, value: any, callback: any) {const acount = /^[a-z_]+$/;if (value && !acount.test(value)) {callback(new Error('请输入小写英文、下划线'));} else {callback();}},/*** 校验 请输入小写英文* 名称校验*/validatorLower(rule: any, value: any, callback: any) {const acount = /^[a-z]+$/;if (value && !acount.test(value)) {callback(new Error('请输入小写英文'));} else {callback();}},/*** 校验首尾空白字符的正则表达式**/checkSpace(rule: any, value: any, callback: any) {const longrg = /[^\s]+$/;if (!longrg.test(value)) {callback(new Error('请输入非空格信息'));} else {callback();}},/*** 校验手机号*/validatePhone(rule: any, value: any, callback: any) {var isPhone = /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;if (value.indexOf('****') >= 0) {return callback();}if (!isPhone.test(value)) {callback(new Error('请输入合法手机号'));} else {callback();}},/* 数字 */number(rule, value, callback) {validateFn('number', rule, value, callback, '包含非数字字符');},/* 字母 */letter(rule, value, callback) {validateFn('letter', rule, value, callback, '包含非字母字符');},/* 字母和数字 */letterAndNumber(rule, value, callback) {validateFn('letterAndNumber', rule, value, callback, '只能输入字母或数字');},/* 手机号码 */mobilePhone(rule, value, callback) {validateFn('mobilePhone', rule, value, callback, '手机号码格式有误');},/* 字母开头,仅可包含数字 */letterStartNumberIncluded(rule, value, callback) {validateFn('letterStartNumberIncluded', rule, value, callback, '必须以字母开头,可包含数字');},/* 禁止中文输入 */noChinese(rule, value, callback) {validateFn('noChinese', rule, value, callback, '不可输入中文字符');},/* 必须中文输入 */chinese(rule, value, callback) {validateFn('chinese', rule, value, callback, '只能输入中文字符');},/* 电子邮箱 */email(rule, value, callback) {validateFn('email', rule, value, callback, '邮箱格式有误');},/* URL网址 */url(rule, value, callback) {validateFn('url', rule, value, callback, 'URL格式有误');},regExp(rule, value, callback) {if (validateNull(value) || value.length <= 0) {callback();return;}const pattern = new RegExp(rule.regExp);if (!pattern.test(value)) {const errTxt = rule.errorMsg || 'invalid value';callback(new Error(errTxt));} else {callback();}},
};/*** @desc  [自定义校验规则]* @example*  import { validateRule } from "@/utils/validateRules";*  rules: [*     { validator: validateRule.emailValue, trigger: 'blur'}*  ]*/export const getRegExp = function (validatorName) {const commonRegExp = {number: '^[-]?\\d+(\\.\\d+)?$',letter: '^[A-Za-z]+$',letterAndNumber: '^[A-Za-z0-9]+$',mobilePhone: '^[1][3-9][0-9]{9}$',letterStartNumberIncluded: '^[A-Za-z]+[A-Za-z\\d]*$',noChinese: '^[^\u4e00-\u9fa5]+$',chinese: '^[\u4e00-\u9fa5]+$',email: '^([-_A-Za-z0-9.]+)@([_A-Za-z0-9]+\\.)+[A-Za-z0-9]{2,3}$',url: '(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]'};return commonRegExp[validatorName];
};const validateFn = (validatorName, rule, value, callback, defaultErrorMsg) => {if (validateNull(value) || value.length <= 0) {callback();return;}const reg = new RegExp(getRegExp(validatorName));if (!reg.test(value)) {const errTxt = rule.errorMsg || defaultErrorMsg;callback(new Error(errTxt));} else {callback();}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++核心编程——4.7 多态

4.7.1 多态的基本概念 多态是C面向对象三大特性之一 多态表示提供一个公共的函数接口&#xff0c;当传入不同参数对象时&#xff0c;执行不同的函数实现。 语法 virtual 返回值类型 函数名() {} 分类 静态多态 动态多态&#xff08;加“virtual“&#xff09; 函数重载 和 …

基于Pytorch框架的深度学习RegNet神经网络二十五种宝石识别分类系统源码

第一步&#xff1a;准备数据 25种宝石数据&#xff0c;总共800张&#xff1a; { "0": "Alexandrite","1": "Almandine","2": "Benitoite","3": "Beryl Golden","4": "Carne…

数字化农业新时代:图扑农林牧综合监控平台

利用图扑自研 HT for Web GIS 产品&#xff0c;结合遥感技术&#xff0c;构建可交互式的农林牧数据分析平台。该平台围绕地块总览、播种分析、牛只管理、设备查询四个维度&#xff0c;对地区的全貌、农场、村集体分布以及相应的环境进行多样化的可视化展示和进行数据支持&#…

爱岗敬业短视频:成都科成博通文化传媒公司

爱岗敬业短视频&#xff1a;传递正能量&#xff0c;塑造职场新风尚 在当今社会&#xff0c;短视频以其独特的传播方式和广泛的受众群体&#xff0c;成为了信息传播的重要渠道。在众多短视频内容中&#xff0c;以“爱岗敬业”为主题的短视频尤为引人注目&#xff0c;成都科成博…

js Ajax函数封装及使用

直接上代码 一、ajax函数封装 /*** ajax函数* param {Object} options 请求传入的对象参数*/ function ajax(options {}) {// 1. 参数校验// 校验请求地址必传,而只能是字符串类型if (!options.url || typeof (options.url) ! string) throw Error(url必传,只能是字符串);//…

每天发布1000个视频SOP之账号管理:抖音可用的上传管理账号的浏览器安装包23个

企业抖音运营&#xff1a; 全流程整套操作SOP&#xff0c; 每天发布1000个视频工作管理体系&#xff1a; &#xff08;因为上传限制&#xff0c;分成3个压缩包资源上传&#xff09; 这是其中的&#xff1a;SOP矩阵划管理登录抖音平台账号&#xff0c;上传管理运营账号&#…

FreeRtos进阶——队列的特殊用途

信号量与互斥量都一样&#xff0c;都是特殊的队列。但是只有互斥量实现了优先级继承机制。 信号量与互斥量与队列一样&#xff0c;在操作增加或者减少时&#xff0c;必须先关中断在进行操作&#xff01; 信号量创建揭秘 图中信号量的创建过程&#xff0c;在代码中的体现本质就是…

设计模式 16 解释器模式 Interpreter Design Pattern

设计模式 16 解释器模式 Interpreter Design Pattern 1.定义 解释器模式 (Interpreter Design Pattern) 是一种行为型设计模式&#xff0c;它定义了一种语法表示&#xff0c;并提供了一种解释器来解释该语法表示的句子。 核心概念&#xff1a; 语法表示 (Grammar): 定义了…

如何使用 jQuery 库来删除 HTML 页面中指定的元素下的所有子元素,但是保留其中一个特定的子元素

如何使用 jQuery 库来删除 HTML 页面中指定的元素下的所有子元素&#xff0c;但是保留其中一个特定的子元素 示例如下&#xff1a; 假设我们有以下的 HTML 代码&#xff1a; <div id"container"><div id"header">Header</div><div…

现在股票交易佣金标准最低是万0.854,低佣金炒股开户方式和流程!

股票交易佣金的最低标准是万分之0.854&#xff1b; 证券公司股票交易佣金默认是万分之3&#xff1b; 无门槛的股票交易佣金是万分之1&#xff1b; 万分之0.854的佣金要求投资者资产达到一定规模&#xff0c;不同的证券公司规定不一样。 如果没有经过证券公司客户经理协商开…

【SQL学习进阶】从入门到高级应用(一)

文章目录 MySQL命令行基本命令数据库表的概述初始化测试数据熟悉测试数据 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01; &#x1f49d;希望您在这里可以感受到一份轻松愉快的氛围&#x…

SolidityFoundry 安全审计测试 tx.origin 漏洞

名称&#xff1a;tx.origin 漏洞 solidityproject/vulnerable-defi at master XuHugo/solidityproject GitHub 说明&#xff1a; tx.origin是Solidity中的一个全局变量&#xff1b;智能合约中使用该变量进行身份验证&#xff0c;会使合约容易受到网络钓鱼攻击。 msg.sende…

C++牛客周赛43题目分享(3)小红平分糖果,小红的完全平方数,小苯的字符串变化,小红的子数组排列判断

目录 ​编辑 1.前言 2.四道题目 2.1小红平分糖果 2.1.1题目描述 2.1.2输入描述 2.1.3输出描述 2.1.4示例 2.1.5代码 2.2小红的完全平方数 2.1.1题目描述 2.1.2输入描述 2.1.3输出描述 2.1.4示例 2.1.5代码 2.3小苯的字符串变化 2.1.1题目描述 2.1.2输入描述 …

Java 原子变量 一次通关

前言 Java中的原子变量是用于实现无锁的线程安全编程的一种机制。它们是java.util.concurrent.atomic包中的一部分&#xff0c;这个包提供了一系列原子类&#xff0c;用于执行原子操作。 主要类型 Java的原子包提供了多种原子类&#xff0c;包括&#xff1a; 基本类型&…

想自学编程,看编程书有些看不懂,下一步应该怎么办?

不管你从事什么工作&#xff0c;编程都有助于你的职业发展。学习编程将给你自己赋能。我喜欢尝试新想法&#xff0c;时刻都有希望启动的新项目。学会编程后&#xff0c;我就可以坐下来自己实现&#xff0c;而不需要依赖他人。 编程也会提升你在其他方面的技能。因为你熟练掌握…

对SpringBoot配置文件配置项加密原理

参考认识BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor - 知乎 SpringBoot 之 Jasypt 实现yml配置文件加密_-djasypt.encryptor.password-CSDN博客 【springboot】jasypt加密_jasypt.encryptor.password-CSDN博客 实现&#xff1a; 导包&#xff1a; 使…

Gitlab不允许使用ssh拉取代码的解决方案

一、起因 之前一直是用ssh进行代码拉取&#xff0c;后来公司搞网安行动&#xff0c;不允许ssh进行连接拉取代码了 因为我是用shell写了个小型的CI/CD,部署前端项目用于后端联调的&#xff0c;因此在自动部署时&#xff0c;不方便人机交互&#xff0c;所以需要自动填充账密。 …

ZLMediaKit cmake 编译 要点

# 加载自定义模块 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") project(ZLMediaKit LANGUAGES C CXX) # 使能 C11 set(CMAKE_CXX_STANDARD 11) ############################### SET(CMAKE_SYSTEM_NAME Linux) SET(CMAKE_SYSTEM_PROCESS…

护网2024-攻防对抗解决方案思路

一、护网行动简介 近年来&#xff0c;网络安全已被国家上升为国家安全的战略层面&#xff0c;网络安全同样也被视为维护企业业务持续性的关键。国家在网络安全治理方面不断出台法规与制度&#xff0c;并实施了一些大型项目和计划&#xff0c;如网络安全法、等级保护、网络安全…

【UE C++】 虚幻引擎C++开发需要掌握的C++和U++的基础知识有哪些?

目录 0 引言1 关键的 C 知识2 Unreal Engine 相关知识3 学习建议 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;UE虚幻引擎专栏&#x1f4a5; 标题&#xff1a;【UE C】 虚幻引擎C开发需要掌握的C和U的基础知识有哪些&#xff1f;❣️ 寄语&…