Я борюсь с проблемой, которую не могу понять:
Мне нужно проверить поле ввода с атрибутом pattern="[0-9]+([,.][0-9])?"
в angular реактивной форме с Validators.pattern
, но, похоже, мой ?
квантификатор в конце не работает ...
Что я хочу
Я хочу проверить числа с нуля или один десятичный максимум. Как вы можете видеть на https://regex101.com/r/2D2sww/1, регулярное выражение работает отлично.
Актуальная проблема
В моем приложении я могу ввести столько десятичных знаков, сколько захочу, без Validator.pattern
, чтобы что-то сделать. Любой другой символ делает форму недействительной, поэтому мой Валидатор работает .
Вот мой код (упрощенно):
компонент. html
<form [formGroup]="myForm">
<input type="number" formControlName="myInputField" id="myInputField" pattern="[0-9]+([,.][0-9])?" required />
</form>
component.ts (Каждый импорт и объявления пропущены для ясности)
ngOnInit() {
this.myForm = this.formBuilder.group({
myInputField: [
"",
[Validators.required, Validators.pattern],
]
});
}
Я уже пытался использовать Validators.pattern(/^[0-9]+([,.][0-9])?$/)
и Validators.pattern("[0-9]+([,.][0-9])?")
как указал в документации , но это ничего не меняет, поэтому я подозреваю, что мой Regex неверен ...
Есть идеи? Спасибо, хорошего дня:)