Tengo una tarea para hacer un convertidor de números decimales a binarios y viceversa. He hecho todo lo que necesito, pero no tengo idea de cómo proteger el sitio de que el usuario ingrese un número con la parte después del punto decimal.
Así que busqué en Internet y encontré Number.isInteger() , pero no tengo idea de cómo funciona esto. Intenté escribir algunas cosas de prueba (como puede observar debajo de este muro de texto) pero nada parecía funcionar. ¿Alguien puede ofrecer ayuda sobre cómo funciona exactamente Number.isInteger()?
pepege() { var a = +document.getElementById("x").value; var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; } <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>Gracias por todos y cada uno de los consejos sobre cómo seguir adelante con esto.
Puede agregar un detector de eventos y obligar al usuario a ingresar solo el número. Según tengo entendido, tiene problemas con las entradas del usuario.
const pepege = () => { var a = +document.getElementById("x").value; var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; } document.getElementById("x").addEventListener("input", event => { document.getElementById("x").value = document.getElementById("x").value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1') }); <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>Envuelva su var a en parseFloat() . El texto de tipo de entrada siempre devuelve una cadena. Con parseFloat() , obtendrá NaN para caracteres no numéricos, un flotante para un flotante y un entero para un entero.
function pepege() { var a = parseFloat(document.getElementById("x").value); var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; } <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>