Quiero agregar un número específico a todos los números que están separados por comas en HTML usando expresiones regulares y jquery.
aquí está mi código de prueba -
$('#ug-wb-break-word').text(function(i, s) { return s.replace(/\d+/g, function(m) { return parseInt(m, 10) + 612; }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="ug-wb-break-word"> 123,451,45.00 </div>Esto funciona, pero no en el caso de los números flotantes. En los números decimales, el script también agrega el valor después del decimal. Para cambiar esto, también usé /m en lugar de 'g' pero aún así, solo funciona para un número y no todos los números están separados por comas.
$('#ug-wb-break-word').text(function(i, s) { return s.replace(/\d+/m, function(m) { return parseInt(m, 10) + 612; }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="ug-wb-break-word">5000.1000</div>El código anterior funciona, pero solo si pongo un solo número en el HTML. ¿Cómo puedo arreglar el código? Gracias por adelantado
Use una expresión regular que coincida con números con una fracción opcional. Use grupos de captura para obtener la parte entera y la fracción por separado, luego simplemente agregue al número entero.
$('#ug-wb-break-word').text(function(i, s) { return s.replace(/(\d+)(\.\d+)?/g, function(m, int, fraction) { return (parseInt(int) + 612) + (fraction || ""); }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="ug-wb-break-word"> 123,451,45.00 </div>