• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 377
  • Last Modified:

Regular expression for Year Format

Hi,
I am using VS2010 and C#.Net
I am trying to validate the years entered in a TextBox.
It can be two formats.Ex:2013-2012(fourdigitshyphenfourdigits) or 2009(fourdigits)

I am trying this expression and it is failing for 2011 @"20[01]\d *- *20[01]\d";

The first digit should be Two and second digit is zero and third digit and fourth digit can be any thing 0-9.
I tested for 2013-2012 and it worked fine. But it is not working for 2011.

Thanks
0
KavyaVS
Asked:
KavyaVS
  • 4
  • 4
3 Solutions
 
MazdajaiCommented:
Try
20\d\d(-20\d\d)?

Open in new window

0
 
KavyaVSAuthor Commented:
I tried this and it worked fine.
Please check is there any mistake in it.
20\d\d *(- *20\d\d)?

Thanks
0
 
MazdajaiCommented:
Not sure why you need the asterisk based on your requirement?

It can be two formats.Ex:2013-2012(fourdigitshyphenfourdigits) or 2009(fourdigits)
The first digit should be Two and second digit is zero and third digit and fourth digit can be any thing 0-9.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
käµfm³d 👽Commented:
I agree. The pattern "20\d\d *(- *20\d\d)?" also accepts the following (probably not what you want):

200000000
20000-2008
20000----------2008
200
200-2008
200--------------2008
0
 
KavyaVSAuthor Commented:
Empty spaces before and after the Hyphen causing the problems.I added space asterisk before and after the hyphen which means 0 or more spaces.
How to validate empty spaces without adding the *.

Thanks
0
 
MazdajaiCommented:
I think we are still unsure what you mean, what is the expected output? You can add \s? to make empty space optional.
20\d\d(\s?-\s?20\d\d)? 

Open in new window

It would be helpful if you can provide expected output.
0
 
KavyaVSAuthor Commented:
I tested the  3 patterns.Three not working.
"20\d\d *(- *20\d\d)?"
"20\d\d(\s?-\s?20\d\d)?"
"20\d\d(-20\d\d)?"
Yes. The pattern "20\d\d *(- *20\d\d)?" accepting the following:
200000000
20000-2008
20000----------2008
200-2008
200--------------2008

And this pattern 20\d\d(\s?-\s?20\d\d)?  also accepts the following:
200000000
20000-2008
20000----------2008
200-2008
200--------------2008

And even this pattern(with out considering empty space before or after hyphen) 20\d\d(-20\d\d)? also accepting the following:
200000000
20000-2008
20000----------2008
200-2008
200--------------2008


I want this:
The entered text in the Text Box can be two formats.Ex:2013-2012(fourdigitshyphenfourdigits) or 2009(fourdigits)


The first digit should be Two and second digit is zero and third digit and fourth digit can be any thing 0-9.
In case if there are optional single empty space before and after hyphen I want to accept it.

Thanks.
0
 
MazdajaiCommented:
^20\d\d\s?(-\s?20[0-9][0-9])?$

Open in new window

0
 
KavyaVSAuthor Commented:
Thanks
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now