formateo-de-miles

Este es un buen ejemplo de uso de expresiones regulares para formatear un numero con Javascript.

La idea es escribir en una caja de texto, por ejemplo:

123456789

y que automaticamente, aparezcan los separadores de miles quedando un resultado como el sgte:

123.456.789

A continuacion el codigo completo de la pagina y la funcion javascript:

La funcion JS es la sgte:

function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}

else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}

Y ponemos una caja de texto en un formulario con el sgte. codigo:

<form>
<input type="text" onkeyup="format(this)" onchange="format(this)">
</form>

La funcion que formatea, se llamara por cada caracter numerico que se escriba y asi facilitar la entrada de datos.

Finalmente, el codigo completo de la pagina:

<html>
<title>Formatear Numero</title>
<head>
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
 
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</head>

<body>

<form>
<input type="text" onkeyup="format(this)" onchange="format(this)">
</form>

</body>
</html>

ACTUALIZACION 25-04-2014: se modifico el post y se uso el sourcecode para deplegar mejor el codigo. Ahora solo tienen que copiar y pegar y olvidarse del problema de las cremillas.

TYDW.-

About these ads