正则表达式有效月份

时间:2015-12-09 08:03:18

标签: regex directive

我正在使用follow指令将输入文本框设为仅数字。但是,我应该如何更改正则表达式,以便只允许输入1到12之间的数字(包括两者)。

(function () {
    "use strict";
    angular
    .module("xyz")
    .directive('numericOnly', function () {
        return {
            require: 'ngModel',
            link: function (scope, element, attr, ngModelCtrl) {
                function fromUser(text) {
                    if (text) {
                        var transformedInput = text.replace(/[^0-9]/g, '');
                        if (transformedInput !== text) {
                            ngModelCtrl.$setViewValue(transformedInput);
                            ngModelCtrl.$render();
                        }
                        return transformedInput;
                    }
                    return undefined;
                }
                ngModelCtrl.$parsers.push(fromUser);
            }
        };
    })
}());

1 个答案:

答案 0 :(得分:4)

您可以使用以下正则表达式:

^(1[012]|[1-9])$

这里实际上有两个正则表达式是管道(或)。第一个匹配10-12,第二个匹配1-9。总共1-12