2009-08-03 8 views
0

J'ai besoin d'un validateur d'expressions régulières pour valider que les champs de texte contiennent uniquement des nombres compris entre 00 et 31 (notez qu'il faut autoriser 05 et 5), une autre regex pour les nombres 01-12 05 et 5), et un autre regex pour les nombres entre 1920 - 2009.aide regex pour les validateurs

Comment puis-je faire cela?

+3

Je suis curieux, pourquoi voulez-vous utiliser pour valider une regex une date? Vous ne pouvez pas convertir les valeurs individuelles en ints et tester la plage de nombres de cette façon? Ou essayez DateTime.Parse - et c'est mauvais si elle lance une exception FormatException? – McAden

Répondre

0

00-31 cas

"^(0?[0-9])|([1-2][0-9])|(30)|(31))$" 

01-12 cas

"^(0?[1-9])|(10)|(11)|(12)$" 
+0

il y a une erreur, n'est-ce pas? "^ (0? [1-9]) | (10) | (11) | (12) $" – f0b0s

+0

Votre deuxième expression ne correspond pas 11. –

+0

et elle correspond à 00 et 0. – f0b0s

2

Qu'est-ce pas utiliser la gamme validateur et mettre min et max date avec un type de données de date. So minValue = 1/1/1920, maxValue = 1/12/2009. Vous pouvez même définir la valeur max sur un chargement de page (pas de vérification de publication) avec la date d'aujourd'hui.

1

1920-2009:

"^(19[2-9][0-9])|(200[0-9])$" or simplier: "^((19[2-9])|(200))([0-9])$"