前端Vue3+element-plus表单输入框实现Cron表达式校验

2023-09-21 16:38:54

页面如下:

本来想手写正则表达式校验,结果发现很麻烦,cron表达式组成如下:

开发使用框架为vue3+element-plus,于是选择cron-validator依赖。使用步骤如下:

1、通过npm install cron-validator命令安装:

2、可以通过package.json文件中看到,已安装成功。

3、在你需要校验的组件中,通过import { isValidCron } from 'cron-validator'导入依赖:

4、使用,上一步从’cron-validator’导入{ isValidCron },就可以使用isValidCron('* * * * *')进行判断,返回boolean类型默认不支持秒和年字段,因为这两个字段在 cron 表达式中较为不常见:

if (isValidCron('* * * * *')) {
    // Do something
}

5、但是由于用户的使用习惯不同,你可能需要开启其他的配置,比如需要支持秒,那就需要设置seconds为true来开启支持,如果设置为false,则保持不支持。下面代码中,列举了四个其他开启配置项,可通过阅读代码中的注释部分来理解。

const rules = reactive<FormRules<RuleForm>>({
    ...
    cronExpression: [
      { required: true, message: '请输入Cron表达式', trigger: 'blur' },
      {
        validator: (rule, value, callback) => {
          // seconds可以通过seconds在选项中将标志传递为 true来启用对秒的支持(例:* * * * * *);
          // alias启用alias对月份和工作日的支持(例:* * * * mon);
          // allowBlankDay可以启用该标志以使用?符号将天或工作日标记为空白(例:* * * * ?);
          // allowSevenAsSunday可以启用该标志以支持数字 7 作为星期日(例:* * * * 7);
          const isOk = isValidCron(value, { 
            seconds: true, 
            alias: true, 
            allowBlankDay: true, 
            allowSevenAsSunday: true 
          });
          if (!isOk) {
            callback(new Error('请输入可用的Cron表达式'));
          } else {
            callback();
          }
        },
        trigger: 'blur',
      },
    ]

})

更多推荐

【国产32位mcu】电动车控制芯片CS32F031C8T6的应用

近年来,随着“新国标”的落地,双轮电动车在智能化、强性能、安全性等方面不断演进,带动了新一轮的换车高峰。电动车控制器作为双轮电动车的核心部件,迎来新的增长。芯海科技32位MCUCS32F031C8T6,作为电动车控制器的主控MCU芯片,很好地满足了双轮电动车在户外工作中的高温宽、高耐潮的工作环境,以及PWM、ADC等高

《DevOps实践指南》- 读书笔记(八)

DevOps实践指南Part6集成信息安全、变更管理和合规性的技术实践22.将信息安全融入每个人的日常工作22.1将安全集成到开发迭代的演示中22.2将安全集成到缺陷跟踪和事后分析会议中22.3将预防性安全控制集成到共享源代码库及共享服务中22.4将安全集成到部署流水线中22.5保证应用程序的安全性22.6确保软件供应

BD就业复习第三天

1.连续活跃区间表的实现思路实现连续活跃区间表是数据仓库中常见的需求,通常用于分析用户或实体在一段时间内的活跃情况。以下是一种可能的实现思路:1.数据模型设计:首先,您需要设计一个数据模型来存储连续活跃区间。通常,这个表包含以下字段:用户/实体ID:标识活跃实体的唯一标识符。开始日期:活跃区间的开始日期或时间戳。结束日

【DevOps系列】Docker数据卷(volume)详解

【DevOps系列】Docker数据卷(volume)详解文章目录【DevOps系列】Docker数据卷(volume)详解一、概述二、数据卷三、为什么使用数据卷volume数据卷的作用:数据卷的特点:四、数据卷volume基本操作4.1创建数据卷4.2查看数据卷4.3查看数据卷详细信息4.4数据卷删除五、数据卷的使用

Python发布订阅模式

Python发布订阅模式1、broadcast-service模块2、基本使用3、使用装饰器4、发布Topic带参数1、broadcast-service模块Python发布订阅模式可以实现程序间的松耦合broadcast-service是一个轻量级的Python发布订阅者框架,且支持同步、异步、多主题订阅等不同场景下

【Python基础】S01E02 列表

S01E02列表列表是什么列表的操作修改、添加和删除元素列表排序列表倒序列表长度遍历整个列表数值列表创建数值列表数值列表简单统计计算列表推导式列表切片复制列表列表是什么在Python中,用方括号([])表示列表,用逗号分隔其中的元素。bicycles=['trek','cannon','redline','specia

华为OD机试 - 构成正方形的数量 - 数据结构map(Java 2023 B卷 100分)

目录专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出3、说明华为OD机试2023B卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新

银行存款问题:整存零取

整存零取月息为0.63%,每年底取出1000,五年刚好取完,计算最初存入金额。(本笔记适合基本熟悉一门编程语言的coder翻阅)【学习的细节是欢悦的历程】Python官网:https://www.python.org/Free:大咖免费“圣经”教程《python完全自学教程》,不仅仅是基础那么简单……地址:https:

QTday5

注册widget.h#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>#include<QIcon>#include<QPushButton>#include<QLineEdit>#include<QLabel>#include<QDebug>#include<QMessag

基于SpringBoot的企业客户管理系统

目录前言一、技术栈二、系统功能介绍管理员功能模块员工功能模块三、核心代码1、登录模块2、文件上传模块3、代码封装前言本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述企业客户管理系统的当前背景以

从零学习开发一个RISC-V操作系统(三)丨嵌入式操作系统开发的常用概念和工具

本篇文章的内容一、嵌入式操作习系统开发的常用概念和工具1.1本地编译和交叉编译1.2调试器GDB(TheGNUProjectDebugger)1.3QEMU模拟器1.4项目构造工具Make本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记,计划从RISC-V的底层汇编指令学起,结合C语言,在Ubunt

热文推荐