separador quitar numeros moneda miles formato bootstrap jquery currency formatter

jquery - numeros - quitar separador de miles javascript



¿Cómo puedo formatear correctamente la moneda usando jquery? (10)

Ampliando la respuesta de Melu puede hacer esto para funcionalizar el código y manejar cantidades negativas.

Muestra de salida:
$ 5.23
- $ 5.23

function formatCurrency(total) { var neg = false; if(total < 0) { neg = true; total = Math.abs(total); } return (neg ? "-$" : ''$'') + parseFloat(total, 10).toFixed(2).replace(/(/d)(?=(/d{3})+/.)/g, "$1,").toString(); }

No necesito una máscara, pero necesito algo que formatee la moneda (en todos los navegadores) y no permita que se tipeen letras ni carácteres especiales. Gracias por la ayuda

Ejemplo:

Válido: $ 50.00
$ 1,000.53

No válido: $ w45.00
$ 34.3r6


Como corolario de por qué el complemento jQuery FormatCurrency es una buena respuesta, me gustaría refutar tu comentario:

1. code.google.com/p/jquery-formatcurrency: no filtra todas las letras. Puede escribir una sola letra y no la eliminará.

Sí, formatCurrency () por sí solo no filtra las letras:

// only formats currency $(selector).formatCurrency();

Pero toNumber (), incluido en el complemento formatCurrency, sí lo hace.

Por lo tanto, quieres hacer:

// removes invalid characters, then formats currency $(selector).toNumber().formatCurrency();



Otra opción (si está utilizando la vista de navaja ASP.Net) es, en su opinión, puede hacer

<div>@String.Format("{0:C}", Model.total)</div>

Esto lo formatearía correctamente. nota (item.total es doble / decimal)

si en jQuery también puedes usar Regex

$(".totalSum").text(''$'' + parseFloat(total, 10).toFixed(2).replace(/(/d)(?=(/d{3})+/.)/g, "$1,").toString());


Para aquellos que no quieren agregar .00, he actualizado la respuesta de @melu para eliminar el .00 de la última:

$ (". totalSum"). text (''$'' + parseFloat (total, 10) .toFixed (2) .replace (/ (/ d) (? = (/ d {3}) +.) / g, " $ 1, "). ToString () .replace (''. 00'', '''') );

diferencia de salida:

total = 8900000

entonces la solución de @melu proporcionará

$8,900,000.00

pero esta solución proporcionará

$8,900,000


Pruebe la divisa de regexp con jQuery (sin complementos) :

$(document).ready(function(){ $(''#test'').click(function() { TESTCURRENCY = $(''#value'').val().toString().match(/(?=[/s/d])(?:/s/.|/d+(?:[.]/d+)*)/gmi); if (TESTCURRENCY.length <= 1) { $(''#valueshow'').val( parseFloat(TESTCURRENCY.toString().match(/^/d+(?:/./d{0,2})?/)) ); } else { $(''#valueshow'').val(''Invalid a value!''); } }); });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <input type="text" value="12345.67890" id="value"> <input type="button" id="test" value="CLICK"> <input type="text" value="" id="valueshow">

Editar: Nuevo comprobar un valor para válido / inválido


Solía ​​usar el complemento de moneda de formato jquery, pero ha tenido errores recientemente. Solo necesito formatear para USD / CAD, así que escribí mi propio formato automático.

$(".currencyMask").change(function () { if (!$.isNumeric($(this).val())) $(this).val(''0'').trigger(''change''); $(this).val(parseFloat($(this).val(), 10).toFixed(2).replace(/(/d)(?=(/d{3})+/.)/g, "$1,").toString()); });

Simplemente configure la clase de cualquier entrada que deba formatearse como moneda <input type="text" class="currencyMask" /> y la formateará perfectamente en cualquier navegador.


Use jquery.inputmask 3.x. Ver demostraciones here

Incluir archivos:

<script src="/assets/jquery.inputmask.js" type="text/javascript"></script> <script src="/assets/jquery.inputmask.extensions.js" type="text/javascript"></script> <script src="/assets/jquery.inputmask.numeric.extensions.js" type="text/javascript"></script>

Y codifica como

$(selector).inputmask(''decimal'', { ''alias'': ''numeric'', ''groupSeparator'': ''.'', ''autoGroup'': true, ''digits'': 2, ''radixPoint'': ",", ''digitsOptional'': false, ''allowMinus'': false, ''prefix'': ''$ '', ''placeholder'': ''0'' } );

Reflejos:

  • fácil de usar
  • partes opcionales anywere en la máscara
  • posibilidad de definir alias que ocultan la complejidad
  • Máscaras de fecha / fecha y hora
  • máscaras numéricas
  • muchas devoluciones
  • máscaras no codiciosas
  • muchas características pueden ser habilitadas / deshabilitadas / configuradas por opciones
  • admite los atributos readonly / disabled / dir = "rtl"
  • admitir los atributos de entrada de datos de máscara (s)
  • soporte multi-máscara
  • soporte de máscara regex
  • soporte de máscara dinámica
  • preprocessing-mask support
  • formateo / validación de valores sin elemento de entrada