Como verificar se uma string em JavaScript é um número válido?
Olá a todos! Sou novo em JavaScript e estou escrevendo um pequeno aplicativo de calculadora. O usuário insere valores em campos de texto, e preciso garantir que os dados inseridos sejam números antes de realizar operações matemáticas.
O problema é que não consigo pensar em uma maneira confiável de verificar. Usei `typeof` — mas ele mostra "string" para tudo que vem do input. Tentei `isNaN()` — mas ele se comporta de forma estranha: `isNaN("123")` retorna `false` (ok), mas `isNaN("12.3abc")` também retorna `false`, embora claramente não seja um número! Além disso, `isNaN("")` retorna `false`, uma string vazia é considerada número — isso é totalmente confuso.
Também tentei `Number(" ")` — ele retorna 0, o que também é enganoso. Ouvi falar sobre `parseFloat` e `parseInt`, mas eles truncam a string e retornam um número se a string começar com dígitos, por exemplo `parseFloat("123abc")` retorna 123 — isso também não é o que preciso. Preciso de uma correspondência estrita: toda a string deve ser um número, sem caracteres extras.