在javascript中,Cron Expression的Regex必须等于5



我真的被困在了一个地方,我想要一个cron表达式的正则表达式,其中场景是cron表达式长度应该等于5。

此外,它应该接受所有可能的cron表达式,但它应该等于5。

例如:-

  1. 0 0 12 * * ?->这是无效的,因为此表达式不等于5
  2. 0 0 12 * *->这是有效的cron

类似地,

  1. * * * * *->这是有效的cron表达式,因为它是==5

  2. * * * * * *->这是无效的!==5

  3. 0 15 10 * * ? 2005->这也是无效的cron

  4. 0 15 10 * 2005->这是有效的cron

  5. 0 0-5 14->无效

  6. 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。

最新更新