cron表达式JS正则匹配
2020-03-25 15:40:31
415
4
今天做cron表达式的验证做了半天。。总算弄好了,
每次搞正则都是一个头两个大,不过弄好成就感还是满满哒。[]~( ̄▽ ̄)~*
目前网上能找到的正则都不行,还是自己实现吧。
效果在喵的实验室这里,
根据CronTab.org官方的说明实现JS验证。
5位
* * * * *
分别位分钟,小时,天,月,周
支持范围、列表、步长、月周的英文名称
比如:
1,2,44,50,52-59 */1 1-5/1 1 1
又比如:
* 10 1-10 jun mon
做起来没想到第一步分钟验证就栽跟头了,0-59的验证。。坑了个爹的。
【0-59】?呵呵,NO!
/[1-5]?[0-9]/
0-23?
2[0-3]|1?[0-9]
正确验证第一位,0-59分钟的完整正则如下:
支持0-59单个数字,支持0,1,2,4-10 逗号分隔列表及-范围
支持 */3 10-40/2 步长每多少分钟 间隔
/^((\*|[1-5]?[0-9]|[1-5]?[0-9]-[1-5]?[0-9])(\/[1-5]?[0-9])*|(([1-5]?[0-9]|[1-5]?[0-9]-[1-5]?[0-9])+(,([1-5]?[0-9]|[1-5]?[0-9]-[1-5]?[0-9]))*))\s[^\s]*\s[^\s]*\s[^\s]*\s[^\s]*$/
然后月份和星期还需要支持英文前三个字母的表达
即: Jun jun-Oct 也是需要支持的。
/^[^\s]*\s[^\s]*\s[^\s]*\s((\*|(1[0-2]|[0-9])|(1[0-2]|[0-9])-(1[0-2]|[0-9]))(\/(1[0-2]|[0-9]))*|(((1[0-2]|[0-9])|(1[0-2]|[0-9])-(1[0-2]|[0-9]))+(,((1[0-2]|[0-9])|(1[0-2]|[0-9])-(1[0-2]|[0-9])))*)|(((jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))))\s[^\s]*$/i
好了,完整的效果在这里哦~
2020-04-02 11:02:36
0
赞
赏
本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵。 固定链接: 【cron表达式JS正则匹配】 转载请注明
相关文章:
发表新的评论
文章分类
文章归档
标签
deb ,
,
蓝屏 ,
select ,
html5 ,
tomcat ,
gcc ,
ajax ,
apt-get update ,
选择 ,
js加密 ,
java ,
工作 ,
ocr ,
AngularJs ,
感慨 ,
work ,
click ,
javascript ,
反向代理 ,
ip查询 ,
空间查询 ,
word ,
ECS服务器 ,
centos ,
杂 ,
StartupWMClass ,
前端 ,
js ,
vmdk ,
感概 ,
select2 ,
virtualbox ,
gg代理 ,
share ,
seo ,
风筝 ,
email ,
ASR ,
转换 ,
cool ,
activiti-ui ,
喵小凡 ,
@PropertySource ,
ckeiditor ,
网站攻击 ,
SRILM ,
风景 ,
plugin ,
vdi ,
扩容 ,
chorme ,
阿里云 ,
KALDI ,
num ,
packer2 ,
pic ,
gg镜像 ,
win8.1 ,
ecs ,
mysql ,
Ubuntu ,
快递查询 ,
nginx ,
ubuntu ,
swap ,
maven ,
entropy_avail ,
tencent ,
语音识别 ,
prerender ,
xfce4 ,
进度条 ,
存储过程 ,
activiti ,
熵 ,
日出 ,
练笔 ,
虞美人 ,
nodejs ,
词 ,
demo ,
jquery ,
random ,
linux ,
cat ,
bootstrapValidator ,
angularJs ,
live ,
on ,
gg ,
雪 ,
婚姻 ,
景色 ,
@Autowired ,
pdf ,
emqttd ,
优化 ,
thchs30 ,
opencv ,