Express Validator验证时间



我想用express-validator验证时间,就像这样18:14。当我在验证器中使用isTime时,body("StartTime").isTime().withMessage("Value must be time with HH:MM format")抛出一个错误,isTime不是一个函数。

是否有其他方法来实现时间验证。

你试过Regex吗?

const { body, validationResult } = require('express-validator');
body('StartTime')
.custom((value) => {
if (!/^([01]d|2[0-3]):([0-5]d)$/.test(value)) {
throw new Error('Value must be time with HH:MM format');
}
return true;
})

这里有一个链接,可以看到如何使用regex模式作为日期格式。

您可以通过编写自定义验证器来验证时间。

const { body } = require("express-validator");
function isTime(input) {
// Validate By TimeStamps
let value = new Date(parseInt(input));
if (isNaN(value)) {
throw new Error("Date object is invalid");
}
// Validate From ISO Time
value = new Date(input);
if (isNaN(value)) {
throw new Error("Date Object Is invalid");
}
return true;
}
body("StartTime").custom(isTime);

你可以稍微修改一下这段代码,使它更适合你的需要。

相关内容

  • 没有找到相关文章

最新更新