Die überprüfung von text-Feld enthält ein float ist ein Gültiger Prozentwert?
Ich habe ein Formular-text-Feld, das ein KeyUp-Ereignis. Auf KeyUp-ich Ignoriere anthing aber zahlen, die Zeit, backspace, löschen und cursor-Tasten. Also, das einzige, was in dem Feld kann eine Zahl oder Periode.
Ich brauche, um zu überprüfen, diese Dinge (die Zahl wird in % nicht über 100,00%):
-Das Textfeld ein string eine gültige Zahl (die sollten immer wahr sein, es sei denn, jemand legt zwei '.'s).
-Das Textfeld string hat maximal 2 Nachkommastellen
-Wenn das Textfeld die Zeichenfolge ein Komma, hat es etwas nach (1 oder 2 Dezimalstellen, nicht nur mit einem Punkt am Ende)
-Die Zahl nicht größer als 100 (<= 100)
Beispiele (das, was ich brauche, um zu überprüfen):
95 is true (valid, decimal places not required)
95. is false (don't need a '.' with no decimal place after)
95.0 is true
95.00 is true
95.000 is false (3 decimal places not valid) 100 is true
101.01 is false (over 100)
101 is false (over 100)
Ich habe gesehen, einige Dinge, die einige Stücke auf der Liste, aber ich bin nicht schlau genug, um zu ändern die regex genau das zu bekommen, was ich brauche. Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Leute vorschlagen, regexes, aber ich denke eine kleine Funktion ist besser geeignet für eine solche Validierung:
Live Beispiel
versuchen, diese zum Ausdruck: die 100% ist ein spezieller Fall eines allgemeineren Muster
Erklärung
(0|[1-9]\d?)
können zahlen von 0 bis 99(\.\d{1,2})?
ermöglicht, ein Punkt mit 1 oder 2 Ziffern nach|
sonst100
akzeptieren 100(\.00?)?
mit optional 0 oder 00Edit:
Habe ich versucht, dieses jsfiddle demo http://jsfiddle.net/pCDVn/1/ und es funktioniert... Blick auf die Konsole
Könnte man begrenzen Sie die Länge des Feldes bis 5, prüfen Sie, dass der Wert umgewandelt werden kann, um eine Zahl, und dann stellen Sie sicher, dass die Zahl zwischen 0 und 100. Sie werden nicht in der Lage zu geben 100.00, aber warum würden Sie brauchen, um?
Auch, hier ein Turnschuh " für die Prüfung. Eine Anmerkung, wenn Sie wirklich überprüfen "95." als falsch, müssen Sie zusätzliche Validierung für, die. Allerdings würde ich raten, gegen diese Anforderung, denn es ist immer noch stellt einen gültigen Prozentsatz und hat keine Auswirkungen auf das Ergebnis der Berechnungen.