我正在创建一个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='')
答案 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)都转换为字符串。)