console
function formatDateInput() {
const input = document.querySelector('input');
const placeholder = '-';
let currentDate = new Date().toISOString().slice(0, 10);
input.value = currentDate.replace(/-/g, placeholder);
input.addEventListener('input', () => {
let value = input.value.replace(/[^\d]/g, '');
let formattedValue = '';
if (value.length === 4) {
formattedValue = value.slice(0, 4);
} else if (value.length === 6) {
formattedValue = `${value.slice(0, 4)}${placeholder}${value.slice(4, 6)}`;
} else if (value.length === 8) {
formattedValue = `${value.slice(0, 4)}${placeholder}${value.slice(4, 6)}${placeholder}${value.slice(6, 8)}`;
}
input.value = formattedValue;
});
input.addEventListener('keydown', (event) => {
if (event.key === 'Delete' || event.key === 'Backspace') {
const selectionStart = input.selectionStart;
const selectionEnd = input.selectionEnd;
if (selectionStart === selectionEnd) {
if (event.key === 'Delete') {
if (selectionStart === input.value.length) {
input.value = input.value.slice(0, -1);
} else {
input.value = input.value.slice(0, selectionStart - 1) + input.value.slice(selectionStart);
}
} else if (event.key === 'Backspace') {
if (selectionStart === 0) {
input.value = input.value.slice(1);
} else {
input.value = input.value.slice(0, selectionStart) + input.value.slice(selectionStart + 1);
}
}
if (input.value === '') {
input.value = placeholder.repeat(3);
}
} else {
input.value = input.value.slice(0, selectionStart) + input.value.slice(selectionEnd);
}
}
});
}
<input type="text" class="input" id="input">