Die "akzeptierte" Antwort auf diese Frage ist sowohl falsch als auch kurzsichtig.
Er ist insofern nicht korrekt, als dass er auf Zeichenfolgen wie 0001
was kein gültiges Jahr ist.
Sie ist kurzsichtig, denn sie wird pas alle Werte über 9999 übereinstimmen. Haben wir schon die Lektionen von JAHR-2000-PROBLEM ? Verwenden Sie stattdessen den regulären Ausdruck:
^[1-9]\d{3,}$
Wenn Sie nicht nur Jahre in der Zukunft, sondern auch Jahre in der Vergangenheit abgleichen müssen, können Sie diesen regulären Ausdruck verwenden, um jede positive ganze Zahl abzugleichen:
^[1-9]\d*$
Auch wenn Sie keine Daten aus der Vergangenheit erwarten, sollten Sie diesen regulären Ausdruck trotzdem verwenden, nur für den Fall, dass jemand eine Zeitmaschine erfindet und Ihre Software mit zurücknehmen möchte.
Hinweis: Dieser reguläre Ausdruck passt auf alle Jahre, auch auf die vor dem Jahr 1, da diese üblicherweise mit einer BC-Bezeichnung und nicht mit einer negativen ganzen Zahl dargestellt werden. Natürlich könnte sich diese Konvention in den nächsten Jahrtausenden ändern. Daher ist es am besten, wenn Sie jede ganze Zahl - ob positiv oder negativ - mit dem folgenden regulären Ausdruck abgleichen:
^-?[1-9]\d*$