antd 验证cron表达式

2023-11-04

项目中使用了quartz,前端需要输入cron表达式并做验证(后端验证很方便,直接用CronExpression.isValidExpression(cronStr)验证即可),现有网上的资料,要么求大虾做cron的超强正则,要么写了一大堆js来验证,好崩溃。

研究了下,发现用cron-parser结合antd的自定义验证很方便就完成验证了,几个所需的资料如下:

1、cron-parser的官文https://www.npmjs.com/package/cron-parser(安装、demo)

2、antd官文form验证部分https://ant.design/components/form-cn/(页面中搜“validator”)

思路:

写一个验证函数,让cron-parser去转换,如果 catch,则填充验证函数的callback("验证提醒文字"):

代码:

<FormItem key="cronExpression" labelCol={{ span: 5 }} wrapperCol={{ span: 15 }} label="时间策略">
  {form.getFieldDecorator('cronExpression', {
    rules: [
      { required: true, message: '时间策略不能为空!' },
      { validator: (rule, value, callback) => this.handleCronValidate(rule, value, callback) },
      ],
    initialValue: formVals.cronExpression,
  })(<Input placeholder="请输入" />)}
</FormItem>

函数:

handleCronValidate=(rule,value,callback)=>{
  if(!!value){
    let parser=require('cron-parser');
    try{
      let interval=parser.parseExpression(value);
      console.log("cronDate:",interval.next().toDate());
    } catch (e) {
      callback("非Cron表达式格式,请检查!"+e.message);
    }
  } else {
    callback("时间策略不能为空!");
  }
  callback();
}

页面效果:

简单快捷!

都是小把戏,大牛勿喷!

我承认,我以前都依赖社区成长,从没贡献,现在我也为社区做点贡献,仅此而已!

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

antd 验证cron表达式 的相关文章

随机推荐

  • VirtIO实现原理——数据传输演示

    文章目录 初始化 示意图 代码分析 Guest第一次添加buffer 示意图 代码分析 Notify Host Host第一次处理buffer 示意图 代码分析 Guest第二次添加buffer Host第二次处理buffer 初始化 示意
  • PLY格式文件

    PLY是一种电脑档案格式 全名为多边形档案 Polygon File Format 或 斯坦福三角形档案 Stanford Triangle Format 该格式主要用以储存立体扫描结果的三维数值 透过多边形片面的集合描述三维物体 与其他格
  • OpenTiny 前端组件库正式开源啦!面向未来,为开发者而生

    华为开发者大会2023 HDC Cloud 2023 于7月7日 9日在东莞拉开帷幕 本届大会以 每一个开发者都了不起 为主题 OpenTiny作为前端企业级组件库解决方案 在本次大会上正式进行发布 项目发展历程 从自研走向开源的 Tiny
  • 黑圈数字符号0到50复制_[LaTeX 中文使用] 使用「数字形式」的罗马数字

    本文已加入专栏文章目录 归入 进阶使用 文章系列 背景信息 阿拉伯数字 1 2 3 4 5 6 7 8 9 10 11 12 由数字符号 0 1 2 3 4 5 6 7 8 9 构成 小写罗马数字 i ii iii iv v vi vii
  • TensorFlow制作自己的数据集,并用神经网络来训练自己制作的数据集【下】

    参考文章 VGGnet 从TFrecords制作到网络训练 Tensorflow制作并用CNN训练自己的数据集 TensorFlow中的协调器tf train Coordinator和入队线程启动器tf train start queue
  • Untiy shader 初学 淡入淡出效果

    Properties MainTex Texture 2D white Range Range Range 0 1 0 FadeRange FadeRange Range 3 100 3 SubShader Tags RenderType
  • 《Linux0.11源码解读》理解(五) head之开启分页

    先回顾一下地址长度以及组合的演变 16位cpu意味着其数据总线 寄存器也是16位 但是地址总线 寻址能力 与此无关 可能是20位 可以参考 cpu的位宽 操作系统的位宽和寻址能力的关系 cpu位宽 brahmsjiang的博客 CSDN博客
  • 海外APP推送(上篇):厂商通道与谷歌FCM通道的差异

    作者 极光高级工程师 史坤坤 企业出海图景 在疫情持续 叠加复杂多变的国际贸易环境下 中国对外直接投资流量和存量连续四年稳居全球前三 近八成中国企业将维持和扩大对外投资意向 看好对外投资前景 企业出海 第一要务就是要建立与用户的触达通道 在
  • 好文推荐——无需公网IP,远程连接SQL Server数据库【内网穿透】

    文章目录 0 声明 1 前言 2 本地安装和设置SQL Server 2 1 SQL Server下载 2 2 SQL Server本地连接测试 2 3 Cpolar内网穿透的下载和安装 2 4 Cpolar内网穿透的注册 3 本地网页发布
  • python中常用的工具包

    一 Python中常用的科学计算工具包 我们最了解的科学计算工具可能是Matlab 它能进行集数值计算 可视化工具及交互于一身 可惜的是它是一个商业产品 开源方面除了GNU Octave在尝试做一个类似Matlab的工具包外 Python的
  • 【Verilog 基础】阻塞赋值和非阻塞赋值的区别

    目录 阻塞赋值 非阻塞赋值 实际工程仿真 阻塞赋值仿真 编写Verilog代码 编写测试文件代码 综合看RTL图 进行实际仿真 非阻塞赋值仿真 编写Verilog代码 编写测试文件代码 综合看RTL图 实际仿真图 总结 阻塞赋值 阻塞赋值的
  • 统计封闭岛屿的数目

    1254 统计封闭岛屿的数目 关于岛屿的相似题目 岛屿数量 二维矩阵的dfs算法 封闭岛屿数量 二维矩阵的dfs算法 统计封闭岛屿的数目 统计子岛屿 不同岛屿的数量 class MaxAreaOfIsland floodFill 算法 12
  • BaseModel(数据模型映射关系)

    import BaseModel h implementation BaseModel id initContentWithDic NSDictionary dic self super init if self self dicToObj
  • 矿场无盘服务器,七号矿场引领传输新时代

    随着时代的高速发展 Web3 0时代也即将到来 海量数据的产生是必然的 如何确保数据有足够的存储空间 保证数据的安全 这就是未来需要攻克的难点 那么 IPFS网络去中心化存储 信息加密保护 信息不能篡改等技术是现阶段发展所需的技术 With
  • javascript 的筛选方法(多种方法细解)

    filter 是一个数组方法 于创建一个新的数组 其中包含原始数组中满足指定条件的所有元素 返回满足条件的所有内容 放在新的数组里 const numbers 1 2 3 4 5 6 const evenNumbers numbers fi
  • FreeBSD下开启SSH

    ee etc inetd conf 将sshd前边的注释去掉 ee etc ssh sshd config 将PermitRootLogin yes的注释去掉 允许root登陆
  • Stm32学习(七)外部中断

    1 外部中断 1 stm32的每一个IO都可以作为外部中断输入 2 stm32的中断控制器支持19个外部中断 事件请求 线0 15 对应外部IO口的输入中断 线16 连接到PVD输出 线17 连接到RTC闹钟事件 线18 连接到USB唤醒事
  • 操作系统真相还原第0章笔记

    什么是陷入内核 应用程序处于特权级别3 操作系统内核处于特权级0 当用户程序访问系统资源时 无论是硬件 还是内核数据结构 它都需要进行系统调用 这样CPU便进入了内核态 也称为管态 内存访问为什么要分段 编译器在编译程序时 肯定要根据CPU
  • can‘t open file ‘create‘: [Errno 2] No such file or directory问题解决

    这里我提供一个思路吧 我在csdn跟哔哩哔哩都去查来着 因为完全是个小白 真的不会解决 但是他们的答案不能解决我的问题 这个是建立项目时候出的问题 这里创建的不成功 我一共修改了以下几点 有点瞎改 因为不会 1 我使用的是anaconda3
  • antd 验证cron表达式

    项目中使用了quartz 前端需要输入cron表达式并做验证 后端验证很方便 直接用CronExpression isValidExpression cronStr 验证即可 现有网上的资料 要么求大虾做cron的超强正则 要么写了一大堆j