La funzione che segue trasforma un ipotetico valore numerico 123456 in ‘123.456‘;
function applicaSeparatore(importoNumerico){
var importo = importoNumerico.toString();
if(importo.length>3){
importo = importo.split('',importo.length).reverse().join('').replace(/([0-9]{3})/g,'$1.');
importo = importo.split('',importo.length).reverse().join('');
}
return importo;
}
Commenti
3 risposte a “Inserire il separatore delle migliaia al posto giusto”
Ho applicato una piccola modifica per modificare il segnatore dei decimali nel caso non fosse un intero:
function applicaSeparatore(importoNumerico){ var importo = importoNumerico.toString(); importo = importo.replace(".", ",") if(importo.length>3){ importo = importo.split('',importo.length).reverse().join('').replace(/([0-9]{3})/g,'$1.'); importo = importo.split('',importo.length).reverse().join(''); } return importo; }function applicaSeparatore(importoNumerico){ var importo = importoNumerico.toString(); importo = importo.replace(".", ","); if(importo.length == 6){ importo = importo.split('',importo.length).reverse().join('').replace(/([0-9]{3})/g, '$1.'); importo = importo.split('', importo.length).reverse().join(''); importo = importo.replace(/^\./, ""); }else{ if(importo.length > 3){ importo = importo.split('',importo.length).reverse().join('').replace(/([0-9]{3})/g, '$1.'); importo = importo.split('', importo.length).reverse().join(''); } } return importo; }Grazie Andrea, per il contributo alla gestione dei decimali e Francesco per il bug sui valori costituiti da 6 caratteri (virgola/punto) compreso. Ho provato ad ottimizzare un po’ le vostre funzioni e il risultato è quello che segue:
function applicaSeparatore2(importoNumerico){ var importo = importoNumerico.toString(); // Suggerimento di Andrea Rufo importo = importo.replace(".", ",") if(importo.length>3){ importo = importo.split('',importo.length).reverse().join('').replace(/([0-9]{3})/g,'$1.'); importo = importo.split('',importo.length).reverse().join(''); } // Riduzione degli IF proposti da Francesco return importo.replace(/^\./,''); }Cosa ne pensate?