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

时间:2018-06-25 21:13:29

标签: javascript html node.js express express-validator

我正在创建一个Web应用程序,在该应用程序中我无法添加多个用户,但是我需要所有具有一定年龄的用户,为此,我尝试使用Express Validator验证dbo,但是Express Validator只允许我验证字符串。 如何使用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='')

1 个答案:

答案 0 :(得分: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)都转换为字符串。)