Tengo una entrada del usuario para su nombre
Quiero verificar de inmediato los valores que ingresa si es menos de 4. Crearé un div que le contenga el error.
También quiero verificar si la entrada tiene algún número. Crearé un div también para decirle que no debe ingresar un dígito en su nombre.
así que este es mi código HTML primero
<div> <label> <span> First Name: </span> <input type="text" name="FirstName" id = "myInput" onkeyup="myFunction()" placeholder="Enter your First Name..." /> </label> </div>y esta es mi función Java Script
function is_number(input) { if(input === '') return false; let regex = new RegExp(/[^0-9]/, 'g'); return (input.match(regex) === null); } function myFunction() { const x = document.getElementById("myInput").value; for(let i = 0; i <= x.length; i++) { if (x.length < 4){ document.getElementById("demo").innerHTML = "You Enterd less Than 4 Numbers" } else if(is_number(x)) { document.getElementById("demo").innerHTML = "First Name Should Not Have Digits in it" } else { document.getElementById("demo").style.display = "none"; } } }Use esto para desinfectar la entrada:
function isValid(input) { let regex = /[AZ]/i; if(!regex.test(input)) { document.getElementById("demo").innerHTML = "First name should not have digits in it" } if(input.length < 4) { document.getElementById("demo").innerHTML = "You entered less than 4 characters" } } El patrón /[AZ]/ solo coincide con los caracteres del alfabeto y el indicador i ignora las mayúsculas y minúsculas de los caracteres. El patrón coincide tanto con las cadenas vacías como con los números. También coincide con caracteres como ' cuando va precedido de un carácter alfabético, por lo que nombres como "O'brien" están bien.