Me gustaría agregar un sufijo al número con % en lugar del símbolo actual de ₹ en el frente y también eliminar los puntos decimales .00. Entonces, el resultado se muestra como 9% en lugar de ₹ 9.00
No estoy seguro de si se podría modificar este script para adaptarlo a mis necesidades. Aquí está mi código:
$('.percent').each(function() { var monetary_value = $(this).text(); if ($.isNumeric(monetary_value) && (monetary_value < 100 || monetary_value.length == 2)) { var i = new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR' }).format(monetary_value); } $(this).text(i); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <div class="percent">9</div>Demostración JSFiddle: http://jsfiddle.net/4p98aw6u/
Para hacer lo que necesita, simplemente elimine el uso de Intl.NumberFormat() y, en su lugar, agregue el carácter % al final del valor.
También tenga en cuenta la conversión explícita de val() a un número entero usando parseInt() antes de usarla en cualquier comparación.
$('.percent').each(function() { var monetary_value = parseInt($(this).text(), 10); var i; if (monetary_value && (monetary_value < 100 || monetary_value.length == 2)) { i = monetary_value + '%'; } $(this).text(i); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <div class="percent">9</div>Una expresión regular podría ser la forma más sencilla de hacer el trabajo, dependiendo de la entrada
const monetary_value = $(this).text(); // ₹9.00 const converted_value = monetary_value.match(/\d+?./)[1] + "%"Consulte https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match , especialmente porque debe agregar alguna comprobación de errores a lo anterior para cuando la coincidencia es nula