no comprendo si es que tienes que hacer las tres opciones, o si es que tienes que decidirte por una pero ninguna las tienes funcionando. bien, mira el siguiente ejemplo con expresiones regulares.
Código:
<input onchange="
range = /^\d{1,2}(\.\d{1,3})?$/;
hundred = /^100$/;
if(!(range.test(this.value) || hundred.test(this.value)))alert('Introducio caracteres no numericos o la cifra no esta en el rango de 0 a 100');
" />
en el ejemplo solo se muestra un aviso, pero lo importante es la expresion regular.