我如何使用 Express-Validator 验证出生日期?

How can i validate Date of Birth using Express-Validato?

我正在创建一个 Web 应用程序,我无法在此应用程序中添加多个用户,但我需要所有具有一定年龄的用户,为此限制我正在尝试使用快速验证器验证 dbo,但快速验证器只让我验证字符串。 我如何使用 express-validator 验证 dbo?

let tdate = new Date(); req.checkBody('datadenasc',"Error: Invalid Date of Birth!").isBefore(tdate.getFullYear()-18).isAfter(tdate.getFullYear()-65);

HTML:

| Dbo:
      input#datadenasc.input(type='date', name='datadenasc', required='')

我做的是

    `let d = new Date();
     let year = d.getFullYear();
     let month = d.getMonth();
     let day = d.getDate();
     let cA = new Date(year - 18, month, day).toDateString();
     let cB = new Date(year - 65, month, day).toDateString();`

req.checkBody('datadenasc','Error: Invalid Date of Birth!').isBefore(cA).isAfter(cB);

第一行是今天的日期。然后在第二、第三和第四行,我从今天的日期开始得到年、月和日。在最后一行,我创建了两个日期,一个是最小年龄 (cA),另一个是最大年龄 (cB)。

最后,我将从输入中收到的日期与 cA 和 cB 日期进行比较。

(注意:Express Validator 仅验证字符串,因此我必须使用 toDateString() 方法将 (cB) 和 (cA) 都转换为字符串。