c# - Validate a string using regular expressions - 1-30 with up to 2 decimal places -
as title suggests need regular expression can validate input string make sure number between 1-30 , 2 decimal places.
for instance,
4 fine 10.25 fine 15.3 fine 29.99 fine 30 fine 30.01 not fine edit: has regular expression due limitations of system i'm using, have tried several things,
i can far
^\d{1,2}(\.\d{1,2})?$ which allows 2 digit number 2 decimal places.
edit: specific situation of needing regex, try this:
^(?!0)(30(\.0{1,2})?|[12]?\d(\.\d{1,2})?)$
breakdown:
^ ... $ - make sure regex starts , ends @ start , end of string.
(?!0) - negative lookahead ensure don't start 0
(30(\.0{1,2})? - 30 optionally followed .0 or .00
| or...
[12]? tens digit of 1 or 2 only
\d 1 non-optional units digit
(\.\d{1,2})? optional .digit or .digitdigit
unfortunately, regex not tunable fit range of numbers. (it interesting project write program automatically spit out regexes one.)
otherwise say: don't re-invent wheel.
double result; if (double.tryparse(inputstring, out result)) { if (result >= 1.0 & result <= 30.0) { return true; } } return false; if it's not 2 decimal places , need be, can calculate round(result, 2) is.
Comments
Post a Comment