1
我使用角度js和以下是我的代码,它只允许用逗号分隔的数字。但我使用的正则表达式允许用户输入1 ,,, 2。只允许输入字段中逗号分隔的数字使用角度js
有什么办法可以限制用户在每个数字后只输入一个逗号吗?
Plunker - http://plnkr.co/edit/g1X9ldVuH4ZewAlumM1P?p=preview
function NumberValidator() {
return {
require: '?ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
if (!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function(val) {
var clean = val.replace(/[^\d+(,\d+)*$]/g, '');
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});
element.bind('keypress', function(event) {
if (event.keyCode === 32) {
event.preventDefault();
}
});
}
};
这将如何工作,因为我想RES指示用户输入数字,然后在文本框中输入逗号,所以我使用替换函数 – Nagendra
不需要替换函数。只需用这个'^ \ d +(?:,\ d + )* $'正则表达式。如果不是这样,那么以红色显示框。如果它是真的,那么以绿色显示它。 –
我不想更改文本框的颜色。即使用户按其他字符,它不应该显示在文本框中,因此我正在使用替换 – Nagendra