Je veux une expression régulière pour accepter seulement 0-9999Expression régulière pour accepter les numéros 0 à 9999
Pas d'espace, pas de lettres. Cependant, "vide" (vide) est autorisé.
Je veux une expression régulière pour accepter seulement 0-9999Expression régulière pour accepter les numéros 0 à 9999
Pas d'espace, pas de lettres. Cependant, "vide" (vide) est autorisé.
\d?\d?\d?\d?
Cela devrait se faire.
Ou plus succinctement:
\d{0, 4}
Cela fonctionne parce que vous dites "0, 1, 2 ou 3 chiffres", où chaque chiffre est 0-9. Cela permet des nombres entre 0 et 9999, et rien d'autre.
Notez qu'il autorise les zéros en tête, c'est-à-dire que 0004 est un nombre valide.
Semble autoriser un espace – Coolcoder
@Coolcoder: vous restreignez être la chaîne entière (c.-à-d. avec la chaîne de début et les symboles de chaîne de fin)? –
Pas d'espaces, période. Pas au début, pas à la fin, pas au milieu. Juste un espace seul n'est pas autorisé. Cependant, "vide" (aucune valeur) est correct :) – Coolcoder
Cela devrait fonctionner:
[0-9]{0,4}
bien, /\d{0,4}/
est le contrôle
façon la plus simple, mais en général je convertir en nombre et ne limite En supposant que vous ne voulez pas accepter les numéros gauche rembourré avec des zéros.
(0|([1-9]\d{0,3}))?
Lire zéro ou une des opérations suivantes: 0 ou 1 à 9 suivi d'une chaîne de 0 à 3 chiffres.
Semble autoriser un espace – Coolcoder
Ne doit pas correspondre du tout à un espace car aucun espace n'existe dans l'expression. Selon la façon dont vous l'utilisez, vous devrez peut-être ajouter des caractères correspondants pour le début et la fin de la chaîne: '^ (0 | ([1-9] \ d {0,3}))? $' – tvanfosson
Pourquoi utilisez-vous reg.ex pour vérifier un nombre? –
Un bon site pour tester votre regex: http://regexpal.com/ – karlipoppins
@Frederik Wordenskjold: Parce que tout le monde n'aime pas utiliser le marteau 'int.TryParse' :) – leppie