Cómo verificar si una cadena es un número válido en JavaScript
¡Hola a todos! Soy nuevo en JavaScript y estoy escribiendo una pequeña aplicación de calculadora. El usuario ingresa valores en campos de texto y necesito asegurarme de que los datos ingresados sean números antes de realizar operaciones matemáticas.
El problema es que no puedo encontrar una forma confiable de verificar. Usé `typeof`, pero muestra "string" para todo lo que viene del input. Probé `isNaN()`, pero se comporta de manera extraña: `isNaN("123")` devuelve `false` (bien), pero `isNaN("12.3abc")` también devuelve `false`, ¡aunque claramente no es un número! Además, `isNaN("")` devuelve `false`, la cadena vacía se considera un número, lo cual es confuso.
También probé `Number(" ")` y devuelve 0, lo que también es engañoso. Escuché sobre `parseFloat` y `parseInt`, pero ellos recortan la cadena y devuelven un número si la cadena comienza con dígitos, por ejemplo `parseFloat("123abc")` devuelve 123, que tampoco es lo que necesito. Necesito una coincidencia estricta: toda la cadena debe ser un número, sin caracteres adicionales.
Aquí