我正在使用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);
}
};
})
}());
答案 0 :(得分:4)
您可以使用以下正则表达式:
^(1[012]|[1-9])$
这里实际上有两个正则表达式是管道(或)。第一个匹配10-12
,第二个匹配1-9
。总共1-12
。