0
我正在使用以下指令來製作僅用於輸入文本框的數字。但是,我應該如何更改正則表達式,以便它只允許輸入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 [012] | 0 [1-9]?)$'是允許月份被指定爲'01','02',這可能會有幫助 – nomail
我不會解釋作爲*它實際上有兩個正則表達式是管道(或)*。 '|'是一個交替操作符,用於分隔*替代子模式*。 –
但是,我需要否定在text.replace中使用的表達式(Negative_pattern,'')。我怎樣才能否定這種模式? 我正在使用(?!^(1 [012] | [1-9])$)但它不起作用。 – CodeZila