Шаблон проверки 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)]],
Другие вопросы по тегам