Bu tür durumlarda input'un date özelliğini kullanmanız gerekiyor, spesifik olarak max-min ve default şekilde belirleyebiliyorsunuz.
<input type="date" id="start" value="2015-02-22" min="2010-01-01" max="2020-06-09">
Benim önerim yukarıdaki date özelliğini kullanmanız, fakat text kullanma zorunluluğunuz varsa aşağıdaki kodu deneyebilirsiniz, üstünkörü yazdığım için birkaç hata çıkabilir
<input type="text" maxlength="10">
<p style="color: red;" class="hata"> </p>
<script>
let arr = new Array();
let text = document.querySelector("input");
let hata = document.querySelector(".hata");
text.addEventListener('keydown', function() {
if(text.value.length == 2) {
text.value += '/';
}
if(text.value.length == 5) {
text.value += '/';
}
} )
text.addEventListener('change', function() {
arr = text.value.split('/');
if(arr[0] > 31 || arr[1] > 12 || arr[2] > 2022) {
hata.innerHTML = "Lütfen gerçek bir tarih giriniz.";
}
else if(arr[2] < 1900) {
hata.innerHTML = "Lütfen gerçek bir yıl giriniz.";
}
else{
hata.innerHTML = "";
}
}
)
</script>