我需要构建一个cron-validator。
这是一个cron表达式,它表示每30秒执行一次。
任务是在时间少于30秒时显示错误。例如:
如果我写了下面的内容,表示每10秒执行一次:
*/10 * * * * *
它应该显示一个错误,提示“请输入超过30秒的时间”。下面是一个函数示例,其中expression是cron表达式,limit以毫秒为单位,所以如果传递30秒,它应该验证30秒。
function cronValidator(expression = '', limit = 30000){}
到目前为止,我尝试了这个:
function cronValidator(expression = '', limit = 30000) {
// filter the number of seconds from expression
const [seconds] = expression.match(/(\d+)/);
// convert seconds into miliseconds
const milisecondsInExpression = seconds * 1000;
if (milisecondsInExpression < limit) {
console.error(`Please enter more than ${limit / 1000} seconds.`);
} else {
console.log('You are good to go.');
}
}
const cronExp = '*/31 * * * * *';
cronValidator(cronExp, 40000);
但是它不起作用,因为:
- 限制或表达式可以是分钟或小时。不仅仅是秒。这意味着普通的正则表达式是不够的。