Моя программа Angular5 содержит поле input
для ввода даты. Я использую NgbDateStruct
и NgbCalendar
из ng-bootstrap . Несмотря на наличие календаря для выбора даты, когда пользователь вручную вводит данные в поле даты, он не проверяется.
То есть в поле ввода, отведенном для ввода даты, пользователь не должен иметь возможности вводить текстовые или мусорные данные. Но прямо сейчас пользователь может вводить любые данные.
Чтобы выполнить эту проверку на стороне клиента, я попытался использовать <input type = "date">
, но input type = date
не поддерживается в IE 11 и более ранних версиях.
В JQuery и JavaScript было доступно несколько решений. Но я не могу использовать JQuery и JavaScript в моей программе Angular + TypeScript.
Как проверить поле ввода для Дата , чтобы пользователь не смог ввести в поле ввода что-либо, кроме действительной даты в Машинопись ?
Я попробовал следующий обходной путь в TypeScript, но в результате возникла ошибка:
app.component.ts
validateDate() {
const regExp = /^(\d{4})\/(\d\d?)\/(\d\d?)$/;
if (((this.fromDate).toString()).match(regExp)) {
console.log('Valid Date');
}
}
Я получил ошибку:
[ts] - Свойство 'match' не существует для типа 'NgbDateStruct'
где this.fromDate
- ввод даты, которую я получаю из представления.
HTML:
<div class = "input-group date">
<input class = "form-control" [(ngModel)] = "fromDate" ngbDatepicker #d = "ngbDatepicker" onmousedown = "validateDate()">
</div>