Javascript 角度5日期验证(接受的最小值和最大值)

Javascript 角度5日期验证(接受的最小值和最大值),javascript,angular,momentjs,Javascript,Angular,Momentjs,我似乎找不到一个简单的解决办法,但我有一个这样的日期输入 <input [(ngModel)]="toolDate" type="text" class="tool_input tool_input__date"> 所以我不需要日期格式验证,但我需要最小和最大日期验证。。因此,用户不能输入小于2017年1月1日的日期,也不能输入超过当前日期的日期 现在我知道默认情况下可以使用date并设置min和max,但我不想使用默认的html日期选择器 任何帮助都将不胜感激 谢谢使用以下方法通

我似乎找不到一个简单的解决办法,但我有一个这样的日期输入

<input [(ngModel)]="toolDate" type="text" class="tool_input tool_input__date">
所以我不需要日期格式验证,但我需要最小和最大日期验证。。因此,用户不能输入小于2017年1月1日的日期,也不能输入超过当前日期的日期

现在我知道默认情况下可以使用date并设置min和max,但我不想使用默认的html日期选择器

任何帮助都将不胜感激


谢谢

使用以下方法通过使用自定义函数验证日期

HTML

验证日期的实用方法

export const isValidDate = (c: FormControl) => {
  const DATE_REGEXP = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
  return DATE_REGEXP.test(c.value) || c.value === '' ? null : {
    validateEmail: {
      valid: false
    }
  };
}

可以使用角材质日期选择器。
<input type="date" class="form-control" formControlName="myDate">
this.myFormGroup = this.formBuilder.group({
    'myDate': new FormControl('myDateVal', [Validators.required, isValidDate]),
});
export const isValidDate = (c: FormControl) => {
  const DATE_REGEXP = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
  return DATE_REGEXP.test(c.value) || c.value === '' ? null : {
    validateEmail: {
      valid: false
    }
  };
}