Validar números

En ocasiones es necesario que el usuario solo pueda introducir números en un elemento input type="text" o caja de texto, y aunque utilicemos los nuevos tipos de HTML5 como input type="number" no en todos los navegadores funciona correctamente.
Para corregir esta limitación podemos utilizar la siguiente función, que he denominado esNum, llamándola así: onkeypress="return esNum(event,this)", que impide que el usuario teclee otra cosa que no sean números. Además podemos hacer que si necesitamos introducir números reales solo pueda teclear una coma, o si necesitamos números negativos que solo pueda teclear un solo signo menos.
Además, JavaScript dispone de la función isNaN, que podríamos traducir de forma libre como "¿es un No Número?", que evalúa un argumento para determinar si es un número. Su sintaxis es isNaN(valor), siendo valor el valor que se desea evaluar.
isNaN es una función de alto nivel y no está asociada a ningún objeto. isNaN intenta convertir el parámetro pasado a un número. Si el parámetro no se puede convertir, devuelve true; en caso contrario, devuelve false.