Die "akzeptierte" Antwort auf diese Frage ist sowohl falsch als auch kurzsichtig.
Es ist insofern falsch, als es mit Zeichenfolgen wie übereinstimmt 0001
, was kein gültiges Jahr ist.
Es ist kurzsichtig, dass es nicht alle Werte über 9999. Have passen wir die Lehren aus bereits vergessen Y2K ? Verwenden Sie stattdessen den regulären Ausdruck:
^[1-9]\d{3,}$
Wenn Sie Jahre in der Vergangenheit und Jahre in der Zukunft abgleichen müssen, können Sie diesen regulären Ausdruck verwenden, um eine beliebige positive Ganzzahl abzugleichen:
^[1-9]\d*$
Auch wenn Sie keine Daten aus der Vergangenheit erwarten, möchten Sie diesen regulären Ausdruck möglicherweise trotzdem verwenden, nur für den Fall, dass jemand eine Zeitmaschine erfindet und Ihre Software mitnehmen möchte.
Hinweis: Dieser reguläre Ausdruck stimmt mit allen Jahren überein, einschließlich denen vor dem Jahr 1, da sie normalerweise mit einer BC-Bezeichnung anstelle einer negativen Ganzzahl dargestellt werden. Natürlich könnte sich diese Konvention in den nächsten Jahrtausenden ändern. Daher ist es am besten, eine beliebige Ganzzahl - positiv oder negativ - mit dem folgenden regulären Ausdruck abzugleichen:
^-?[1-9]\d*$