angularJS 控制输入的百分数在0%-100%之间

想了老半天了,记录一下

app.directive("percentageCheck", function () {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function (scope, element, attr, ctrl) {
            if (ctrl) {
                var customValidator = function (value) {
                    var temp = parseInt(value.split("%")[0]);
                    var validity = ctrl.$isEmpty(value) || (temp > 0 && temp < 100);
                    ctrl.$setValidity("percentageCheck", validity);
                    return validity ? value : undefined;
                };
                ctrl.$formatters.push(customValidator);
                ctrl.$parsers.push(customValidator);
            }
        }
    };
});

再加上正则表达式

<input maxlength="8" percentage-check ng-pattern="/^d+.?d{0,2}%$/">

完全限制住

搞定收工

原文地址:https://www.cnblogs.com/zcynine/p/5258936.html