1

我正在创建一个 Web 应用程序,我无法在该应用程序中添加多个用户,但我需要所有具有一定年龄的用户,对于该限制,我正在尝试使用 express 验证器验证 dbo,但 express 验证器只让我验证字符串。如何使用 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='')
4

1 回答 1

1

我所做的是

    `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) 都转换为字符串)。

于 2018-06-25T21:33:45.223 回答