Ввод только цифр?

В веб-разработке с использованием Angular есть несколько способов контролировать, чтобы пользователь вводил только цифры в текстовые поля. Вот несколько подходов, которые можно использовать в вашем приложении Angular.

1. Использование регулярного выражения в шаблоне:
В Angular можно использовать регулярные выражения (regex) для определения допустимых символов в текстовом поле. Вы можете добавить директиву ngPattern к полю ввода и определить регулярное выражение, которое разрешает только цифры. Например:

   <input type="text" ng-model="number" ng-pattern="/^[0-9]*$/">

2. Использование директивы ngKeyup:
Директива ngKeyup позволяет отслеживать событие нажатия клавиши в текстовом поле. Вы можете использовать эту директиву, чтобы проверить введенные значения и удалить все, кроме цифр. Например:

   <input type="text" ng-model="number" ng-keyup="sanitizeNumber()">
   angular.module('myApp', [])
   .controller('myController', function($scope) {
     $scope.sanitizeNumber = function() {
       $scope.number = $scope.number.replace(/[^0-9]/g, '');
     };
   });

В этом примере мы используем функцию sanitizeNumber, чтобы удалить все символы, кроме цифр, из значения $scope.number.

3. Использование директивы ngModel с собственным фильтром:
Директива ngModel предоставляет возможность установить собственный фильтр для значения модели, введенного в текстовое поле. Вы можете использовать эту возможность, чтобы подтвердить, что только цифры сохраняются в модели. Например:

   <input type="text" ng-model="number" ng-model-options="{ updateOn: 'blur' }" ng-model-filter="filterNumber">
   angular.module('myApp', [])
   .controller('myController', function($scope) {
     $scope.filterNumber = function(value) {
       return value.replace(/[^0-9]/g, '');
     };
   });

В этом примере мы использовали функцию filterNumber, чтобы заменить все символы, кроме цифр, в значении модели.

В зависимости от ваших требований и контекста приложения вы можете выбрать один из этих подходов или комбинацию из них. Регулярные выражения могут быть мощным инструментом для определения и валидации допустимых символов в текстовых полях. Директива ngKeyup позволяет отслеживать события нажатия клавиши в реальном времени и вносить изменения в текстовое поле. При использовании директивы ngModel с собственным фильтром вы можете определить правила фильтрации для вводимых значений.