Creo que lo mejor para validar ese tipo de cosas son las expresiones regulares.
Código:
function esNatural(strNumero){
regexp = /^[0-9]*$/;
return regexp.test(strNumero);
}
function esDecimal(strNumero){
regexp = /^[0-9]*.[0-9]*$/;
return regexp.test(strNumero);
}
function esDecimalPuro(strNumero){
regexp = /^.[0-9]*$/;
return regexp.test(strNumero);
}
Y se ajusta el patrón de la expresión regular dependiendo de lo que se necesite.
Espero que te sirva