Dinny Dinny - 20 days ago 9
C# Question

Regex for Passport Number

I am trying to implement regex validation for passport number.

My requirement is


  1. Length should be minimum 3 characters to a maximum of 20 characters.

  2. Should not be only 0's



I tried with the below regular expression

^(?!0{3,20})[a-zA-Z0-9]{3,20}$

This seems to work for most of the cases, but incase my text contains 3 or more leading zeros, it seems to fail. Such as '00000001'.

Example Matches


  • 101AE24 - Working as expected

  • 00 - Not working as expected

  • 01234 - Working as expected

  • 00001 - Not working (But it should also be match)



Any help would be much appreciated.

Rob Rob
Answer

What about this?

^(?!^0+$)[a-zA-Z0-9]{3,20}$

Instead of saying 'reject values with 3-20 zeros', we can just say 'reject anything that only contains zeros (regardless of the length, since <3 and >20 fail anyway)