2016-05-06 6 views
0
<input type="text" ng-pattern="/^[0-9]*$/" id="players" name="players" ng-model="team.players"/> 

Ich möchte, dass der obige Eingang Ganzzahlen mit den folgenden Sonderzeichen akzeptiert. AngularJS-Eingang zum Akzeptieren ganzer Zahlen und Sonderzeichen

Wie kann ich dies mit minimalem Code filtern?

Ich habe versucht, einige Beispiele im Internet gefunden, mit keiner von ihnen funktionieren überhaupt nicht richtig.

Hinweis: Mein Ziel ist es, ganzzahlige Werte zu akzeptieren (zusammen mit den oben genannten Sonderzeichen), aber keine Dezimalstellen.

+0

versuchen Sie diese ng-Muster = "/^\ d + $ /" type = "Nummer" –

+0

immer noch in der Lage zu schreiben '.' Ich will nur numerische Zeichen zu blockieren. aber irgendwie Regex filtert nicht alphanumerisch. –

+0

Sie können diese Zeichen eingeben, aber Ihr Modell wird ungültig –

Antwort

1

Nehmen wir an, dass die folgenden Zahlen annehmen möchten, die alle integral sind: 37, -10, -09, +23, 7., 7.000.

Die folgende Regex:

^[+\-]?[0-9]+(\.0*)?$ 

wird ein optionales Vorzeichen, ein oder mehrere Stellen annehmen, und ein optionales Komma mit nur nachfolgenden Nullen. Es wird absichtlich keine Zahlen ohne irgendwelche Ziffern vor dem Dezimalpunkt akzeptieren, z. .00. Die Regex wird mit ^ und $ verankert, um sicherzustellen, dass die gesamte Zeichenfolge übereinstimmt.

Je nach Regex-Dialekt müssen Sie möglicherweise mehr oder weniger Zeichen angeben.

0

Ich versuche Regex, aber es hat nicht funktioniert. ich am Ende unten mit diesem Code auf,

$scope.reg.players=parseInt($scope.reg.players) 

Also, wenn Benutzer 1.2 gesetzt wird es 1 konvertieren. Wenn Benutzer 1. eingeben, dann wird ein ungültiger Eingabefehler ausgegeben.

Verwandte Themen