Convertir miles y decimales con Expresion regular

publicado por: Anonymous

Necesito de su ayuda debido a que tengo una expresion regular para convertir un numero a milles y decimales, pero cuando le pongo mas de tres decimales tambien le da formato a los decimales, com se lo podria quitar…?

function milesNumeros(numero) {
    return numero.toString().replace(/B(?=(d{3})+(?!d))/g, ",");
};
console.log("Esta Ok: " + milesNumeros(36598365.36));
console.log("Error: " + milesNumeros(3.659836536));

solución

Intenta hacerlo así:

(d)                   # Encuentra un dígito (sera reinsertado)
(?:
    (?=d+(?=[^d.]))  # En el caso que no haya decimales
    (?=(?:d{3})+      # Chequea que haya digitos multiplos de 3 al principio
    b)                # Hasta el ultimo digito
    |                  # O
    (?=d+(?=.))      # En el caso que tenga decimales
    (?=(?:d{3})+      # Chequea que haya digitos multiplos de 3 al principio
    (?=.))            # Hasta el punto
)

_x000D_

_x000D_

function milesNumeros(numero) {_x000D_
    return numero.toString().replace(/(d)(?:(?=d+(?=[^d.]))(?=(?:[0-9]{3})+b)|(?=d+(?=.))(?=(?:[0-9]{3})+(?=.)))/g, "$1,");_x000D_
};_x000D_
console.log("Esta Ok: " + milesNumeros(36598365.36));_x000D_
console.log("Esta Ok: " + milesNumeros(3.659836536));

_x000D_

_x000D_

_x000D_

Respuesta original aquí

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *