A ver, te explico :
Yo bajé un codigo de uno de los FAQ que ahor no encuentro y aparentemete funciona bien, excepto por una excepcion que al final mencionaré.
Aqui el código que tengo :
Cita: function cumpleReglas(simpleTexto)
{
//la pasamos por una poderosa expresión regular
var expresion = new RegExp("^(|([0-9]{1,2}(\\.([0-9]{1,2})?)?))$");
//si pasa la prueba, es válida
if(expresion.test(simpleTexto))
return true;
return false;
}//end function checaReglas
//ESTA FUNCIÓN REVISA QUE TODO LO QUE SE ESCRIBA ESTÉ EN ORDEN
function revisaCadena(textItem)
{
//si comienza con un punto, le agregamos un cero
if(textItem.value.substring(0,1) == '.')
textItem.value = '0' + textItem.value;
//si no cumples las reglas, no te dejo escribir
if(!cumpleReglas(textItem.value))
textItem.value = textoAnterior;
else //todo en orden
textoAnterior = textItem.value;
}
ahora bien, esto filtra bien pues me deja ingresar solo decenas, unidades, un punto decimal y hasta dos decimales. eso está ok para lo que necesito, pero el problema está en que si tecleo letras al inicio sí me lo permite.... yo no quisiera esto... cómo puedo evitarlo ?