angular / формирует целочисленный валидатор

#javascript #angular #typescript #angular-validator

#javascript #angular #typescript #angular-валидатор

Вопрос:

Как я могу проверить, что мое числовое поле ввода принимает только целые числа, а не какие-либо десятичные числа (запятая / точка)?

Код

Component

 import { FormGroup, FormBuilder, Validators } from '@angular/forms';

this.savingData = this.formBuilder.group({
  amount: ['', Validators.required], // only accept integer 123000
});
  

HTML

один

 <ion-input type="number" min="1" inputmode="numeric" formControlName="amount" placeholder="{{ 'SAVINGS.amount' | translate }}" ></ion-input>
  

Есть идеи?

Ответ №1:

Вы можете попробовать Angular Reactive form pattern validator

 this.savingData = this.formBuilder.group({
  amount: ['', [Validators.required, Validators.pattern("^[0-9]*$")]], // only numbers
});
  

Комментарии:

1. @mafortis добавить регулярное выражение внутри кавычек обновленный ответ оформить заказ сейчас

2. хорошо работает таким образом amount: ['', [Validators.required, Validators.pattern("^[0-9]*$")]], , большое спасибо

3. @mafortis Он также будет принимать другие символы, но форма будет недействительной.

4. Если у вас тоже все в порядке с отрицательными числами: Validators.pattern('^-?[0-9]*$')

Ответ №2:

Попробуйте использовать шаблон, подобный d . Он находится в Validators.pattern()

Комментарии:

1. Вы имеете в виду, что я заменяю Validators.required на Validators.pattern() ?

2. Вы можете сделать это или сохранить required и использовать d*