Как поместить правильное сообщение об ошибке при вводе любого алфавита или специального символа в <input matInput type="number">?

Я пытался сделать в компоненте

  1. min = 0; port: new FormControl('', [this.validatePort(this.min)]),

  2. port: new FormControl('', Validators.required)

и в хтмл

<mat-form-field class = "inputnumber">
  <input matInput type = "number" placeholder = "Enter Port" formControlName = "port" required>
     <mat-error>
            {{errors.port}}
     </mat-error>
</mat-form-field>

Я хочу ограничить ввод алфавита и специальных символов в номер типа ввода с помощью правильного сообщения об ошибке. В настоящее время, если я ввел алфавит или специальный символ, я не могу писать, но хочу показать для этого какое-то сообщение об ошибке.

Я использую угловой 7.2.2

Привет, вы используете угловой 1.7 или угловой 7?

Alberto AM 07.02.2019 13:16

Кстати, я думаю, вам следует добавить валидаторы и отображать ошибку только при ее наличии (вы можете справиться с этим с помощью if condition). Вот ссылка на валидаторы Angular: angular.io/api/forms/Валидаторы

Alberto AM 07.02.2019 13:23

@Sarkar Один раз добавили проверку ответа

Prashant Pimpale 07.02.2019 13:45

@ Альберто, используя Angular 7.

S.Sarkar 07.02.2019 15:04
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
4
333
1

Ответы 1

Это сделает то, что вы хотите:

Установите min и max для FormControl в Component.ts

HTML-код:

<mat-form-field class = "inputnumber">
  <input matInput type = "number" placeholder = "Enter Port" [formControl] = "port" required>
   <mat-error *ngIf = "port.invalid">
     Your Error Message
   </mat-error>
</mat-form-field>

Код ТС:

port = new FormControl('', [Validators.required, Validators.max(15), Validators.min(0)]);

Stackblitz

Но этот код также позволяет пользователю вводить алфавиты и специальные символы, хотя он не отображается (мой текущий код приложения имеет только логику этого типа). Но мне нужно показывать некоторое сообщение об ошибке всякий раз, когда пользователь пытается ввести что-то еще, кроме число в этом вводе.

S.Sarkar 07.02.2019 14:59

да, вы должны создать свой собственный regEx, используя свойство Validators

Alberto AM 07.02.2019 15:36

@S.Sarkar Попробуйте этот шаблон: (?<=\s|^)\d+(?=\s|$)

Prashant Pimpale 08.02.2019 06:16

Другие вопросы по теме