La réponse «acceptée» à cette question est à la fois incorrecte et myope.
Il est incorrect en ce sens qu'il correspondra à des chaînes comme 0001
, qui n'est pas une année valide.
Il est myope en ce sens qu'il ne correspondra à aucune valeur supérieure à 9999. Avons-nous déjà oublié les leçons de l' an 2000 ? À la place, utilisez l'expression régulière:
^[1-9]\d{3,}$
Si vous avez besoin de faire correspondre des années dans le passé, en plus des années dans le futur, vous pouvez utiliser cette expression régulière pour faire correspondre tout entier positif:
^[1-9]\d*$
Même si vous ne vous attendez pas à des dates du passé, vous voudrez peut-être utiliser cette expression régulière de toute façon, juste au cas où quelqu'un inventerait une machine à remonter le temps et voudrait ramener votre logiciel avec lui.
Remarque: Cette expression régulière correspondra à toutes les années, y compris celles antérieures à l'année 1, car elles sont généralement représentées avec une désignation BC au lieu d'un entier négatif. Bien sûr, cette convention pourrait changer au cours des prochains millénaires, la meilleure option est donc de faire correspondre tout entier (positif ou négatif) avec l'expression régulière suivante:
^-?[1-9]\d*$