4 votes

En utilisant regex pour filtrer l'année de longueur fixe 0 ou 4 chiffres

Je veux filtrer l'année en utilisant regex en php ou javascript.

qui contient seulement des chiffres et sa longueur est de 0 (si pas d'entrée) ou de 4 si (insertion) il n'accepte pas les longueurs 1, 2 ou 3 par ex. 123.

Je connais regex pour 0 à 4 chiffres qui est ^[0-9]{0,4}$ ou ^\d{0,4}$

9voto

Benjamin Gruenbaum Points 51406

Essayez ce qui suit :

^([0-9]{4})?$

^ - début de la ligne

([0-9]{4})? - quatre chiffres, optionnellement (à cause du ?)

$ - fin de la ligne

3voto

NeverHopeless Points 3962

Je sais que cette question a déjà été répondue mais juste pour être plus clair et comme solution alternative, je viendrais avec ceci :

Dans votre motif :

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

{0,4} permettra de faire correspondre des nombres de longueur 0, 1, 2, 3 et 4. Pour éliminer les longueurs 1, 2 et 3, vous pouvez également utiliser quelque chose comme :

^\d{4}?$

Ici :

^    = début de la ligne
\d   = n'importe quel chiffre - équivalent de [0-9]
{4}  = exactement quatre fois
?    = rend l'élément précédent facultatif
$    = fin de la ligne

J'espère que cela vous aidera !

-1voto

Sverri M. Olsen Points 5033

Vous n'avez pas besoin d'utiliser des expressions régulières pour quelque chose d'aussi simple que faire correspondre une année :

if (ctype_digit($year) && strlen($year) === 4) {
    echo 'C'est une année';
} else {
    echo 'Pas une année';
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X