DEMOSTRACIÓN JSFiddle: https://jsfiddle.net/bukh7jwL/
Tengo una tabla con texto y números y me enfrento a 2 problemas.
¿Cómo voy a hacer esto?
HTML:
<center> <p> <table> <tr><td>This is amazing</td></tr> <tr><td>92834</td></tr> <tr><td>33</td></tr> <tr><td>What?</td></tr> </table> </center>JS:
$('td').each(function() { var monetary_value = $(this).text(); var i = new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR' }).format(monetary_value); $(this).text(i); });Agregué la siguiente declaración a su código para verificar si queremos ejecutar NumberFormat .
$.isNumeric(monetary_value) && (monetary_value < 100 || monetary_value.length == 3)
$.isNumeric(monetary_value) comprueba si es un número.
(monetary_value < 100 || monetary_value.length == 3) comprueba si el valor está por debajo de 100 o si la longitud es de 3 caracteres.
$('td').each(function() { var monetary_value = $(this).text(); if ($.isNumeric(monetary_value) && (monetary_value < 100 || monetary_value.length == 3)) { 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.3.1/jquery.min.js"></script> <center> <p> <table> <tr><td>This is amazing</td></tr> <tr><td>92834</td></tr> <tr><td>33</td></tr> <tr><td>What?</td></tr> </table> </center>Primero debe verificar si la cadena es un número o no, luego debe verificar si los dígitos del número son 3 o más. Después de eso, usando toLocaleString() el número se convertirá a la moneda INR
function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); } $('td').each(function() { var monetary_value = $(this).text(); if(isNumeric(monetary_value)) { let moneyVal = parseFloat(monetary_value); if( (moneyVal < 100 || moneyVal.toString().length == 3) ){ var i = moneyVal.toLocaleString('en-IN', { maximumFractionDigits: 2, style: 'currency', currency: 'INR' }); $(this).text(i); } } }); <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <center> <p> <table> <tr><td>This is amazing</td></tr> <tr><td>92834</td></tr> <tr><td>33</td></tr> <tr><td>What?</td></tr> </table> </center>