在注册系统中创建一个出生日期字段,以查看用户是否足够使用 momentjs 进行



我正在尝试验证我的用户是否超过 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>

最新更新