我正在尝试验证我的用户是否超过 13 岁,作为使用 nodejs 和 momentjs 的用户注册系统的一部分。我有 var 年来表示用户的年龄,我希望某种方式能够检查该值是否大于 13,同时仍然遵循我的表单验证器的格式。我不确定是否有更简单的方法可以做到这一点。
router.post('/register', function(req, res, next) {
var name = req.body.name;
var email = req.body.email;
var password = req.body.password;
var password2 = req.body.password2;
var bday = req.body.bday;
var birthday = moment(bday);
var years = moment().diff(birthday, 'years');
// Form Validator
req.checkBody('name','Name field is required').notEmpty();
req.checkBody('email','Email field is required').notEmpty();
req.checkBody('email','Email is not valid').isEmail();
req.checkBody('password','Password field is required').notEmpty();
req.checkBody('password2','Passwords do not match').equals(req.body.password);
req.checkBody('bday', 'Date of Birth field is required').notEmpty();
req.checkBody('bday', 'Date of Birth must be in valid format').isValid();
req.checkBody('bday', 'User must be older than 13').
// Check Errors
var errors = req.validationErrors();
尝试使用 moment'sdiff
函数来检查年数是否大于 13。
let arr = ["2017-01-29T17:24:22+0000", "2004-01-29T17:24:22+0000"];
for (let i = 0; i < arr.length; i++) {
console.log(moment().diff(arr[i], "years") > 13);
}
<script src="https://momentjs.com/downloads/moment.js"></script>