Estoy tratando de evitar cualquier tipo de cadena al ingresar una entrada. Encontré un código aquí en el desbordamiento de pila que funciona. Sin embargo, solo funciona cuando se ingresa un número primero, o si pongo una letra y borro todo; no funciona al escribir la primera letra. Y no entendí muy bien el código. Ni siquiera sé qué es /^[0-9\b]+$/
Aquí está el código
const [value, setValue] = useState(); const handleChange = (e) => { const re = /^[0-9\b]+$/; if (e.target.value === "" || re.test(e.target.value)) { setValue(e.target.value); } };¿Qué hay de probar si la conversión a Número devuelve NaN? Pruebe el código a continuación:
const [value, setValue] = useState(); const handleChange = (e) => { if (!isNaN(Number(e.target.value))) { setValue(e.target.value); } }; Y, por cierto, como los chicos en los comentarios debajo de la pregunta original señalaron correctamente, esto: /^[0-9\b]+$/ es de hecho una expresión regular