RegExp для ограничения 2 десятичной точки олова Typescript - PullRequest
1 голос
/ 23 мая 2019

У меня есть следующий RegExp в директиве в приложении Angular 5:

private regex = {
        number: new RegExp(/^\d+$/),
        decimal: new RegExp(/^[0-9]+(\.[0-9]*){0,1}$/g) 
    };

Внутри события у меня есть следующий вызов для соответствия:

if (next && !String(next).match(this.regex[this.numericType])) {
            event.preventDefault();
        }

Моя проблема в том, что RegExp допускает более 2 цифр после десятичных знаков. Я пытался удалить * и поставить {0,2} или {1,2}, но это не сработало. Любая идея, что я должен изменить в приведенном выше коде, чтобы он работал с не более 2 десятичных знаков?

1 Ответ

3 голосов
/ 23 мая 2019

Вы бы сделали это так

^[0-9]+(?:\.[0-9]{0,2})?$

 ^                             # BOS
 [0-9]+                        # Required, many digits
 (?:                           # Optional group
      \. [0-9]{0,2}                 # decimal, followed by 0 - 2 digits
 )?
 $                             # EOS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...