我做了一个日期验证器。它验证现有日期。我需要具有其他限制的多个日期验证器,例如:不允许用户输入未来日期的最大日期验证器或只接受过去日期的日期验证器。这是我当前的验证器。
export function dateValidator(group) {
const {day, month, year} = group.value;
const fullDate = `${day}/${month}/${year}`;
const dobPattern = /^(\d{1,2})[-\/](\d{1,2})[-\/](\d{4})$/;
const isStringValid = dobPattern.test(fullDate);
let isValid = false;
if (isStringValid) {
const intDay = Number(day);
const intMonth = Number(month);
const intYear = Number(year);
const jsMonth = intMonth - 1;
const date = new Date(intYear, jsMonth, intDay);
isValid = (date.getFullYear() === intYear && date.getMonth() === jsMonth && date.getDate() === intDay ;
}
return isValid ? null : { invalid: 'Invalid date' };
};
如何限制用户输入未来的日期。我将此代码与以下行一起使用:
isValid = (date.getFullYear() === intYear && date.getMonth() === jsMonth && date.getDate() === intDay ;
但我想知道是否有一种更简单的方法,而不必一遍又一遍地复制和过去这段代码来对其进行小限制。