Esto es lo que estoy tratando de hacer.
En este momento, puedo analizar un número agregando comas automáticamente, sin embargo, cuando intento escribir un negativo, desaparece.
Aquí está el código actual que estoy usando para analizar el número:
$(this).val(function(index, value) { return value .replace(/\D/g, "") .replace(/\B(?=(\d{3})+(?!\d))/g, ","); });¿Cómo mantengo el valor negativo del número?
\D coincide con cualquier cosa que no sea un dígito decimal, por lo que está eliminando el signo menos. Use [^-\d] en su lugar para eliminar cualquier cosa que no sea un dígito o un signo menos.
function add_commas(value) { return value .replace(/[^-\d]/g, "") .replace(/\B(?=(\d{3})+(?!\d))/g, ","); } console.log(add_commas('1234567')); console.log(add_commas('-1234567')); console.log(add_commas('-123,4X567')); Advertencia: esto no funcionará correctamente si ponen un - en el medio del número, ya que quedará en el número.