3

可能重复:
使用 PHP 验证 Crontab 条目

我到处搜索,而且我的正则表达式很差,所以我寻求帮助。

我正在构建一个基于 Web 的 CRON 工具,表单可以而且只会将以下内容传递给处理脚本。'0-99' ',' '*' '-' '/'

我想用 PHP 中的简单 preg_match 验证输入,但似乎无法提出正确的正则表达式。有人可以帮忙吗?此外,我将验证 cron 中的每个项目,即不是 * * * * * 而是分钟值,然后是小时值等。这允许发回更具体的错误。

传递值的示例是

*
0,10
*/5
1,3,5
1-5

这是一个糟糕的尝试,只是匹配数字和 * /[0-9*]/ 任何帮助都会很棒。

问候

4

1 回答 1

4

让我们来看看:

$pattern = '/^(?:[1-9]?\d|\*)(?:(?:[\/-][1-9]?\d)|(?:,[1-9]?\d)+)?$/';

此模式将允许您匹配有效 CRON 句子的合理子集。它确实与您的每一个示例都匹配。不过,确切的模式取决于您定义的语法。

编辑
忘了提到单独的正则表达式匹配不会削减它。它可以做的是检查输入在(您的简化)语法方面是否正确。除此之外,您将需要验证有关语义的输入(例如,0-23 小时;1-30/1 天等)。

于 2012-10-08T16:05:47.313 回答