我真的被困在了一个地方,我想要一个cron表达式的正则表达式,其中场景是cron表达式长度应该等于5。
此外,它应该接受所有可能的cron表达式,但它应该等于5。
例如:-
0 0 12 * * ?
->这是无效的,因为此表达式不等于50 0 12 * *
->这是有效的cron
类似地,
-
* * * * *
->这是有效的cron表达式,因为它是==5 -
* * * * * *
->这是无效的!==5 -
0 15 10 * * ? 2005
->这也是无效的cron -
0 15 10 * 2005
->这是有效的cron -
0 0-5 14
->无效 -
0 0-5 14 * *
->有效
在这种情况下,cron表达式应为===5,如果它小于5或大于5,则应给出错误为(CronExpression无效(
无论如何,我们只能通过regex来做到这一点,或者可以编写一个javascript函数来处理cronExpression的这种情况?
我到处搜索这个正则表达式,但找不到任何具有这种场景的正则表达式
任何有榜样的帮助都将不胜感激!!!
提前感谢!
我认为您不需要regexp:
你可以做:
function validateCron(cron){
return cron.split(' ').length === 5;
}
您的问题需要一些适当的澄清。
假设您需要检查表达式是否正好包含5个部分。然后你可以通过拆分来检查它,就像Roberto Falcon写的那样。请注意,有些表达式允许使用任何类型的空格,而不仅仅是基本空格。
这个表达的确切说明是什么?你需要将它与Linux cron、Oracle CronTrigger、java org.quartz.CronExpression或其他东西一起使用吗?允许的字符略有不同。
你需要自己检查吗?有这样的可能性https://www.npmjs.com/package/cron-parser-只需尝试catch-parser.parseExpression((。您应该检查您的确切规范-它不允许使用一些特殊字符。
最后,如果您需要自己验证regexp,我建议您将其拆分并分别验证每个部分。将所有内容放在一个regexp中会导致巨大且难以读取的文本blob。