Ich benutze eckige js und unten ist mein Code, der nur Zahlen durch Komma getrennt erlaubt.But Regex, die ich verwendet, ermöglicht Benutzer 1, 2 eingeben.Erlaube nur Komma getrennte Zahlen im Eingabefeld mit Winkel js
Gibt es eine Möglichkeit, so dass ich den Benutzer beschränken kann, nach jeder Nummer nur ein Komma einzugeben?
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();
}
});
}
};
Wie dies funktionieren würde, wie ich res wollen trict die Benutzer, um Zahlen einzugeben, gefolgt von einem Komma in einem Textfeld, So verwende ich Replace-Funktion – Nagendra
keine Notwendigkeit, Funktion zu ersetzen .. Überprüfen Sie einfach jeden Buchstaben (auf Tastendruck) mit diesem '^ \ d + (?:, \ d +) * $ 'Regex. Wenn es nicht wahr ist, dann zeige das Kästchen in roter Farbe an. Wenn es wahr ist, zeige es in grüner Farbe. –
Ich möchte die Textboxfarbe nicht ändern. Auch wenn der Benutzer andere Zeichen drückt, sollte es nicht in der Textbox angezeigt werden. Daher benutze ich replace – Nagendra