#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*