Expresion regular para evaluar un número

jueves, 20 de noviembre de 2008

Recientemente en mi trabajo me pidieron que evaluara un campo de texto donde se inserta un número, donde las unidades, decenas, centenas, etc... se separan con comas.
Investigando encontré que una manera relativamente fácil de hacer es con javascript y expresiones regulares. Lamentablemente para mi causa no encontré en la red una expresión regular que se acoplara exactamente a lo que yo buscaba, así que intente hacerla y este es el resultado:

^\d{1,3}(,\d{3})*\.{1}\d{2}

Esta expresión acepta números como por ej.:
1,112,123.00
10.00
123.45

También encontré una pagina donde puedes evaluar expresiones regulares en "tiempo real". Aquí es donde estuve haciendo pruebas para lograr hacer la expresión:

http://www.rubular.com/

Y finalmente realicé un javascript para que evalúe la expresión de la entrada de texto al terminar de escribir, añadiendo el tag onblur="numerico(this)" al código html del Input.

function numerico(t)
{
var patron = /^\d{1,3}(,\d{3})*\.{1}\d{2}/;
var str = t.value;
var result;
if (str.match(patron)){
result = str.match(patron);
if (result!= null){
t.value = result[0];
}
}
else{
alert(t.id+" contiene un numero malformateado");
}
}

0 comentarios: