javascript - attribute - tooltip bootstrap
Formateo del número JQuery (7)
Con el complemento jQuery Number Format , puede obtener un número formateado de una de estas tres formas:
// Return as a string
$.number( 1234.5678, 2 ); // Returns ''1,234.57''
// Place formatted number directly in an element:
$(''#mynum'').number( 1234.5678 ); // #mynum would then contain ''1,235''
// Replace existing number values in any element
$(''span.num'').number( true, 2 ); // Formats and replaces existing numbers in those elements.
Si no te gusta el formato o si necesitas localizar, existen otros parámetros que te permiten elegir cómo se formatea el número:
.number (elNúmero, decimales, decimalSeparator, milesSeparator)
También puede obtener jQuery Number Format de GitHub .
Hay demasiadas preguntas y respuestas sobre esta funcionalidad básica, no puedo ver la madera de los árboles.
En Java solo hay una respuesta simple ( java.text.NumberFormat
y sus subclases), así que estoy seguro de que la mayoría de los complementos, preguntas y respuestas llegarán a ser un estándar de facto para JQuery.
Este plugin es el mejor que he encontrado hasta ahora, pero no sé si todavía está desarrollado, es maduro, etc.
http://plugins.jquery.com/project/numberformatter
¿Hay una mejor solución? ¿Es lo suficientemente maduro / activo como para confiar?
Editar:
Me gustaría poder formatear las monedas, decimales, enteros basados en los mismos patrones de formato que usa Java, de modo que los datos recibidos en el lado del cliente puedan formatearse sin enviarlos primero al servidor.
p.ej
Formatea de 1000
a $1,000
o 1,000.00
etc. (la compatibilidad con el entorno local es agradable)
Parece que http://plugins.jquery.com/project/numberformatter hace el trabajo, pero la pregunta fue: "¿Estoy usando lo correcto?" o "¿Hay una mejor manera de hacerlo?"
El desarrollo del navegador progresa:
Number.toLocaleString(locale);
// E.g.
parseFloat("1234567.891").toLocaleString(window.document.documentElement.lang);
"1,234,567.891"
Escribí un análogo de JavaScript de una función PHP number_format en una base de la función AddCommas de Abe Miessler . Podría ser útil.
number_format = function (number, decimals, dec_point, thousands_sep) {
number = number.toFixed(decimals);
var nstr = number.toString();
nstr += '''';
x = nstr.split(''.'');
x1 = x[0];
x2 = x.length > 1 ? dec_point + x[1] : '''';
var rgx = /(/d+)(/d{3})/;
while (rgx.test(x1))
x1 = x1.replace(rgx, ''$1'' + thousands_sep + ''$2'');
return x1 + x2;
}
Por ejemplo:
var some_number = number_format(42661.55556, 2, '','', '' ''); //gives 42 661,56
Poniendo este http://www.mredkj.com/javascript/numberFormat.html y $(''.number'').formatNumber();
concepto juntos, puede usar la siguiente línea de código;
por ejemplo, <td class="number">1172907.50</td>
se formateará como <td class="number">1,172,907.50</td>
$(''.number'').text(function () {
var str = $(this).html() + '''';
x = str.split(''.'');
x1 = x[0]; x2 = x.length > 1 ? ''.'' + x[1] : '''';
var rgx = /(/d+)(/d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, ''$1'' + '','' + ''$2'');
}
$(this).html(x1 + x2);
});
Recomiendo mirar este artículo sobre cómo usar JavaScript para manejar el formato básico:
function addCommas(nStr)
{
nStr += '''';
x = nStr.split(''.'');
x1 = x[0];
x2 = x.length > 1 ? ''.'' + x[1] : '''';
var rgx = /(/d+)(/d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, ''$1'' + '','' + ''$2'');
}
return x1 + x2;
}
fuente: http://www.mredkj.com/javascript/numberFormat.html
Si bien jQuery puede hacerte la vida más fácil de un millón de maneras diferentes, diría que es excesivo para esto. Tenga en cuenta que jQuery puede ser bastante grande y que el navegador de su usuario necesita descargarlo cuando lo usa en una página.
Cuando utilice jQuery, debe dar un paso atrás y preguntar si contribuye lo suficiente para justificar la sobrecarga adicional de descargar la biblioteca.
Si necesita algún tipo de formato avanzado (como las cosas de localización en el complemento que ha vinculado), o si ya está incluyendo jQuery, podría valer la pena buscar un complemento de jQuery.
Nota al margen: mira esto si quieres echar una risita sobre el uso excesivo de jQuery.
Si necesita manejar varias monedas, varios formatos de número, etc., puedo recomendar autoNumeric . Funciona un placer Lo he usado con éxito desde hace varios años.
http://jquerypriceformat.com/#examples
https://github.com/flaviosilveira/Jquery-Price-Format
html entrada runing para la posibilidad de vivir.
<input type="text" name="v7" class="priceformat"/>
<input type="text" name="v8" class="priceformat"/>
$(''.priceformat'').each(function( index ) {
$(this).priceFormat({ prefix: '''', thousandsSeparator: '''' });
});
//5000.00
//5.000,00
//5,000.00