Expression régulière pour le nombre avec une longueur de 4, 5 ou 6

J'ai besoin d'une expression régulière qui valide pour un nombre avec la longueur 4, 5, 6

J'ai utilisé ^ [0-9] {4} pour valider pour un nombre de 4, mais je ne sais pas comment inclure la validation pour 5 et 6.

Essaye ça:

 ^[0-9]{4,6}$ 

{4,6} = entre 4 et 6 caractères inclus.

Soyez conscient que, comme écrit, la solution de Peter "acceptera" 0000 . Si vous souhaitez valider les nombres entre 1000 et 999999 , alors c'est un autre problème 🙂

 ^[1-9][0-9]{3,5}$ 

Par exemple, bloquera l'insertion de 0 au début de la chaîne.

Si vous souhaitez accepter 0 rembourrage, mais seulement jusqu'à une longueur de 6, afin que 001000 soit valide, il devient plus complexe. Si nous utilisons le look-ahead, nous pouvons écrire quelque chose comme

 ^(?=[0-9]{4,6}$)0*[1-9][0-9]{3,}$ 

Ceci vérifie d'abord si la chaîne est longue 4-6 (?=[0-9]{4,6}$) , puis saute les 0s 0* et recherchez un non-zéro [1-9] suivi d'au moins 3 Chiffres [0-9]{3,} .

[0-9]{4,6} peut être raccourci à \d{4,6}

Si la langue que vous utilisez accepte {} , vous pouvez utiliser [0-9]{4,6} .

Sinon, vous devrez utiliser [0-9][0-9][0-9][0-9][0-9]?[0-9]? .