Tarih formatlarını regex ile kontrol etmek
'gg.aa.yyyy SS:dd:ss' ve 'yyyy-MM-dd HH:mm' biçimindeki tarih metinlerini regex ile kontrol etmek için pratik örnekler.
Tarih alanlarını serbest metin olarak alıyorsanız, kayıt öncesinde biçimin doğruluğunu kontrol etmek gerekir. Aşağıda iki yaygın biçim için düzenli ifadeler var: kullanıcıya gösterilen gg.aa.yyyy SS:dd:ss ve veri tabanı/API tarafında kullanılan yyyy-MM-dd HH:mm.
İfadeler yalnız rakam saymaz, aralıkları da doğrular: gün 01–31, ay 01–12, saat 00–23, dakika ve saniye 00–59 sınırları içinde olmalıdır. Bu sayede “32.13.2026” gibi girdiler daha forma dokunmadan elenir.
Dikkat: biçim doğru olsa da tarih takvimde var olmayabilir (31.02.2026 gibi). Ay uzunluğu ve artık yıl kontrolü düzenli ifadeyle yapılmaz; bunu tarih ayrıştırma işleviyle doğrulayın.
gg.aa.yyyy SS:dd:ss formatı
^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.\d{4} (?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$yyyy-MM-dd HH:mm formatı
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]) (?:[01]\d|2[0-3]):[0-5]\d$
Kısa rehber
Ne zaman kullanılır?
Tarih formatı regex'i, kullanıcıdan sabit biçimde tarih alınan formlarda hızlı kontrol sağlar. Randevu, rapor filtresi, log araması ve veri aktarımı ekranlarında ilk savunma hattı olarak kullanılabilir.
Dikkat edilecekler
- Regex biçimi kontrol eder; tarihin takvimde gerçekten var olup olmadığını ayrıca doğrulayın.
- Saat dilimi ve kullanıcı yereli gerekiyorsa bunu regex dışında ele alın.
- Veritabanına yazmadan önce tarihi gerçek Date/DateTime nesnesine çevirmeyi deneyin.
Sık yapılan hata
31.02.2026 gibi biçim olarak doğru ama takvimde olmayan tarihleri regex ile tamamen yakalamaya çalışmak kodu gereksiz karmaşıklaştırır.
Projeye taşırken dikkat edin
Regex örnekleri hızlı çözüm sağlar; ancak gerçek projede veri kaynağı, satır sonu biçimi, tarayıcı/sunucu farkı ve kullanıcı hataları birlikte test edilmelidir. Web formları, yönetim panelleri ve özel yazılımlarda doğrulama yalnız ön yüzde bırakılmamalı, sunucu tarafında da kontrol edilmelidir.