Tengo una función que elimina números de la cadena, también debería permitir ingresar un máximo de 5 letras. Cuando ingreso 5, y luego otra letra o número, puedo verlo en el registro de la consola, ¿cómo puedo evitar esto?
document.getElementById("test").addEventListener("input", (e) => { console.log(e.target.value); let temp = e.target.value.replace(/[0-9]/g, ''); e.target.value = temp.substr(0, 5); }) <input id="test" type="text">Está registrando el valor antes de eliminar el exceso de caracteres. Simplemente mueva su console.log al final de la función.
document.getElementById("test").addEventListener("input", (e) => { let temp = e.target.value.replace(/[0-9]/g, ''); e.target.value = temp.substr(0, 5); console.log(e.target.value); }) <input id="test" type="text">El problema con su código es que lo está leyendo desde el objetivo actual que permite cualquier número de caracteres, y luego está configurando la subcadena de 0 a 5 en su valor.
La solución simple sería pedirle a HTML que limite la cantidad de caracteres para que nunca se permita el sexto carácter.
Esto se puede lograr mediante la propiedad maxlength .
<input id="test" type="text" maxlength="5">