【发布时间】:2016-01-07 13:26:39
【问题描述】:
谁能告诉我 javascript regEx 接受小数点前 12 个数字,并且只允许小数点后 2 个数字。如果数字没有任何小数,文本框应该接受最多 12 个数字。值应该是数字。 我已经有一个指令,我在其中执行所有 javascript 验证。请让我知道还应该添加什么。
指令-
.directive('allowOnlyDigits', function () {
return {
require: '?ngModel',
scope: { currencycode: '=' },
link: function(scope, element, attrs, ngModelCtrl) {
if(!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function(val) {
if (angular.isUndefined(val)) {
var val = '';
}
var decimalCheck = clean.split('.');
if(!angular.isUndefined(decimalCheck[1])) {
decimalCheck[1] = decimalCheck[1].slice(0,2);
clean = decimalCheck[0] + '.' + decimalCheck[1];
}
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});
element.bind('keypress', function(event) {
if(event.keyCode === 32) {
event.preventDefault();
}
});
}
};
})
【问题讨论】:
-
@Tushar 会强制两位小数,你不能有一个
-
我已经在使用指令只接受数字、一位小数和小数点后两位。我只想限制最大长度。如果数字没有任何十进制值,那么最大长度应限制为 12。
标签: javascript angularjs regex