Ограничить количество знаков и чисел после запятой до 2 знаков после запятой - PullRequest
0 голосов
/ 16 июня 2020

У меня есть требование, согласно которому пользователь должен разрешить использование единственного числа с двумя десятичными знаками

  1. Пользователь также не должен разрешать ввод каких-либо символов или специальных символов
  2. Пользователь также не должен разрешать ввод числа после двух десятичных знаков

Пример: Пользователь пытается ввести число после 7979.78

Я пробовал использовать это регулярное выражение, но оно не работает:

app.directive('numbersOnly', function () {
  return {
    require: 'ngModel',
    link: function (scope, element, attr, ngModelCtrl) {
      function fromUser(text) {
        if (text) {
          var transformedInput = text.replace(/[^0-9\.]([0-9]{1,2})?$/g, '');

          if (transformedInput !== text) {
            ngModelCtrl.$setViewValue(transformedInput);
            ngModelCtrl.$render();
          }
          return transformedInput;
        }
        return undefined;
      }
      ngModelCtrl.$parsers.push(fromUser);
    }
  };
});

1 Ответ

0 голосов
/ 16 июня 2020

Как насчет этого подхода с регулярным выражением \d+\.*\d{0,2}

console.log("21.123".match(/\d+\.*\d{0,2}/)[0]) // 21.12
console.log("21".match(/\d+\.*\d{0,2}/)[0]) // 21
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...