Categorie
Javascript Tutorials

Inserire il separatore delle migliaia al posto giusto

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;
}

3 risposte su “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?

I commenti sono chiusi