isNumber directive

To allow only numbers

HTML

<form ng-app="myapp" name="myform" novalidate>
    <div ng-controller="Ctrl">
        <input name="number" is-number ng-model="myNumber1">
        <input name="number" is-number ng-model="myNumber2">
    </div>
</form>

JavaScript

var $scope;
var app = angular.module('myapp', []);

app.controller('Ctrl', function($scope) {
    $scope.myNumber1 = 1;
    $scope.myNumber2 = 1;
});

app.directive('isNumber', function() {
    return {
        require: 'ngModel',
        restrict: 'A',
        link: function(scope, element, attr, ctrl) {
            function inputValue(val) {
                if (val) {
                    var numeric  = val.replace('۰', '0').replace('۱', '1').replace('۲', '2').replace('۳', '3').replace('۴', '4').replace('۵', '5').replace('۶', '6').replace('۷', '7').replace('۸', '8').replace('۹', '9').replace(/[^- 0-9]/g, '');

                    if (numeric !== val) {
                        ctrl.$setViewValue(numeric);
                        ctrl.$render();
                    }
                    return numeric;
                }
                return undefined;
            }
            ctrl.$parsers.push(inputValue);
        }
    };

});