Jawaban yang "diterima" untuk pertanyaan ini salah dan rabun.
Itu tidak benar karena akan cocok dengan string seperti 0001
, yang bukan merupakan tahun yang valid.
Hal ini di rabun bahwa hal itu akan tidak sesuai dengan nilai setiap atas 9999. Memiliki kita sudah lupa pelajaran dari Y2K ? Sebagai gantinya, gunakan ekspresi reguler:
^[1-9]\d{3,}$
Jika Anda perlu mencocokkan tahun-tahun yang lalu, selain tahun-tahun mendatang, Anda dapat menggunakan persamaan reguler ini untuk mencocokkan bilangan bulat positif mana pun:
^[1-9]\d*$
Bahkan jika Anda tidak mengharapkan tanggal dari masa lalu, Anda mungkin ingin menggunakan ekspresi reguler ini, untuk berjaga-jaga jika seseorang menemukan mesin waktu dan ingin membawa kembali perangkat lunak Anda.
Catatan: Ekspresi reguler ini akan cocok dengan semua tahun, termasuk yang sebelum tahun 1, karena mereka biasanya diwakili dengan sebutan BC dan bukan bilangan bulat negatif. Tentu saja, konvensi ini dapat berubah selama beberapa milenium ke depan, jadi opsi terbaik Anda adalah mencocokkan bilangan bulat apa pun — positif atau negatif — dengan ekspresi reguler berikut:
^-?[1-9]\d*$