Шаблон проверки Angular7 для приема только целых и двойных значений
Я уже много времени потратил на это:(.
Я хочу принимать только целые или двойные положительные числа: например: 40000
, 500.0000
, 400.1234
Мне удалось сделать это для целых чисел:
// somewhere at the code
export const NUMERIC_PATTREN = '^-?[0-9]\\d*(\\.\\d{1,2})?$';
// component code:
amount: [{ value: entry.amount, disabled: false }, [Validators.required,Validators.pattern(NUMERIC_PATTREN )]],
Тем не менее, ввод не принимает значения из формата 500.0000
или же 400.1234
, Кто-нибудь может помочь мне разобраться, пожалуйста.
Обновление Я хочу ограничить количество мест после точки тоже.
2 ответа
Это сработало для меня:
export const NUMERIC_PATTREN = '^-?[0-9]\\d*(\\.\\d{1,4})?$';
это примет целое число или двойное число с максимум 4 мест после точки.
Если вы хотите увеличить или уменьшить количество мест после точки, вам нужно играть с 4, например:
export const NUMERIC_PATTREN = '^-?[0-9]\\d*(\\.\\d{1,3})?$'; //accepts only 3 places after the point
Если вы хотите неограниченное количество мест после точки, которую вы должны использовать:
export const NUMERIC_PATTREN = '^-?[0-9]\\d*(\\.\\d*)?$'; //accepts endless places
Если вы не хотите, чтобы пользователь вводил ноль слева, вам нужно запустить домен с 1:
^-?[1-9]\\d*(\\.\\d{1,4})?$
Если вы хотите принять целое или двойное число с неограниченным количеством мест после или перед точкой, это поможет:
https://stackblitz.com/edit/angular-g75hxt
amount: [{ value: entry.amount, disabled: false }, [Validators.required, Validators.min(0)]],