Link to home
Start Free TrialLog in
Avatar of chokka
chokkaFlag for United States of America

asked on

How to have textbox regular expression validation on asp.net?

How to have textbox regular expression validation on asp.net?


I will have to allow 3 digits and units in the text box. Decimal units should not exceed more than 2 units.

How to handle that?
Avatar of David Johnson, CD
David Johnson, CD
Flag of Canada image

what is the difference between digits and units?
Please show a sample of valid and invalid entries
Avatar of chokka

ASKER

1.0 to 999.99 is valid

If user entered 500.000 , it will not allow user to enter more than 500.00  or round it up.

In other words .. user cant type 100.00000000 ..  decimal units should be stopped at 2 digit units.
I don't know ASP but the regex would be this:
^\d{1,3}\.\d{1,2}$

Open in new window


That will require at least one digit before and after the decimal with a max of 3 before and 2 after.
ASKER CERTIFIED SOLUTION
Avatar of David Johnson, CD
David Johnson, CD
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of chokka

ASKER

This is my solution. It works.

But .. what it happens . is that, it allows the user to enter the number as 100.000000

and then prompt a message.

Instead of doing that, is there a way to prevent the user to type more than .00 digits.
Avatar of chokka

ASKER

Also i am using <Input> syntax. Instead of ValidationExpression, i am using the attribute : pattern
I'm guessing there isn't a way to do that but, as I said, I don't know ASP (just regexes).
Avatar of chokka

ASKER

Anyways, for now i am good. Thanks for helping me !!!!
Avatar of chokka

ASKER

@Wilcoxon

Regex which you shared : ^\d{1,3}\.\d{1,2}$


When we enter the digit as 100 , it doesn't take it. It is expecting to enter the digit as 100.00
decimal unit should be optional as well as decimal unit should not exceed more than 2 units.

This is my current syntax :

[RegularExpression(@"\d{1,3}\.\d{1,2}$", ErrorMessage = "Invalid.")]
[Range(60.00, 120.00, ErrorMessage = "Invalid.")]

Open in new window

Is there some reason that you did not give me partial credit for providing the regex (the same one that David Johnson used in his code)?

Based on your original post and your first comment, it appeared you were saying that at least one decimal digit was required.  To make it optional, change the regex to:
^\d{1,3}(?:\.\d{1,2})?$

Open in new window


Now it will accept anything from 0 to 999.99 (if 0 should not be allowed then change the first \d{1,3} to [1-9]\d{0,2}).