Вот ситуация. У меня есть приложение Angular 7. Одна страница используется просто для запроса даты рождения пользователя. Я хочу убедиться, что введенная дата является действительной.
Существует множество примеров использования JavaScript для проверки даты на SO, однако все они не работают для меня, потому что, что бы я ни вводил в поле, оно «становится» действительной датой.
Так, например, вот мой код:
<mat-form-field appearance="outline">
<input
matInput
[matDatepicker]="picker"
[(ngModel)]="profile.dateOfBirth"
(dateChange)="onChange()"
required
/>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
Входные данные являются данными, привязанными к profile.dateOfBirth, который является объектом Date.
Когда я запускаю код и введите «1» в поле ввода (очевидно, «1» не является допустимой датой), что я получаю, когда смотрю на значение profile.dateOfBirth:
profile.dateOfBirth = Пн Ян 01 2001 00:00:00 GMT-0800 (Pacifi c Стандартное время)
Я думаю, что здесь происходит то, что, похоже, Angular «помогает мне» и конвертирует » 1 "в действительную дату. Но это не так. Так каков рекомендуемый способ борьбы с этим?