Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    48

    inserire punti nelle cifre per le migliaia!

    Ciao a tutti!

    Avevo l'esigenza di inserire i punti nelle cifre per vedere le migliaia, ovvero per visualizzare i numeri al posto che cosi 1000 cosi 1.000.

    Ho trovato su questo forum una fantastica funzione che lo permette:

    codice:
    function ControlloNumero(obj){
      valore = obj.value.replace(/[^\d]/g,'').replace(/^0+/g,'');
      nuovovalore='';
      while(valore.length>3){
        nuovovalore='.'+valore.substr(valore.length-3)+nuovovalore;
        valore = valore.substr(0,valore.length-3);
      }
      obj.value=valore+nuovovalore;
    }
    e la richiamo con:

    codice:
    onkeyup="ControlloNumero(this)"
    ora il problema è questo... io dovrei anche dare la possibilità all'utente di aggiungere in fondo al numero ,00 ma con questa funzione appena tenta di inserire una virgola il js gliela cancella.

    come faccio a non fargli fare il controllo per la virgola?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova a cambiare questa riga:
    valore = obj.value.replace(/[^\d]/g,'').replace(/^0+/g,'');
    con questa:
    valore = obj.value.replace(/[^\d,]/g,'').replace(/^0+/g,'');
    Cioè nel primo replace nella regularExpress oltre \d (che sono i numeri) la virgola , o anche cosi \, non ricordo se la virgola e un carattere riservato
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    48
    Si in effetti per la virgola funziona^^

    ha solo un problemuccio.. che facendo così posso scrivere la virgola ma me la conta come cifra e quindi mi ritrovo cose del tipo 111.111.,00

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    <html>
    <head>
    <script type="text/javascript">
    
    function ControlloNumero(obj){
    valore = document.getElementById('importo').value.replace(/[^\d]/g,'').replace(/^0+/g,'');
    if(valore.length>0){
    nuovovalore=valore.substr(valore.length)+',00';}
    else{nuovovalore='';
    }
    while(valore.length>3){
    nuovovalore='.'+valore.substr(valore.length-3)+nuovovalore;
    valore = valore.substr(0,valore.length-3);
    }
    document.getElementById('importoFormattato').value=valore+nuovovalore;
    }
    
    </script>
    <meta http-equiv="Content-type"
    content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <input id="importo" name="importo" onblur="ControlloNumero()" type="text" />
    <input id="importoFormattato" name="importoFormattato" type="text" />
    </body>
    </html>
    Cosi dovrebbe andar bene aggiunge ,00 alla fine del numero se quello che volevi
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    48
    aspetta aspetta ci sono quasi mentre aspettavo ho trovato questo:

    codice:
    <html>
    <head>
    <title></title>
    <SCRIPT LANGUAGE="JavaScript">
    
    
    
    
    
    
    <!-- Begin
    function formatCurrency(num) {
    		num = num.toString().replace(/\$|\,/g,'');
    		if(isNaN(num))
    			num = "0";
    		sign = (num == (num = Math.abs(num)));
    		num = Math.floor(num*100+0.50000000001);
    		cents = num%100;
    		num = Math.floor(num/100).toString();
    		if(cents<10)
    			cents = "0" + cents;
    		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    			num = num.substring(0,num.length-(4*i+3))+'.'+ num.substring(num.length-(4*i+3));
    		
    		return (((sign)?'€':'-')+ num + ',' + cents);
    }
    //  End -->
    </script>
    </head>
    <body>
    <center>
    <form name=currencyform>
    <input type=text name=input2 size=10 value="" onBlur="this.value=formatCurrency(this.value);">
    </form>
    </center>
    </body>
    </html>
    ora l'unica cosa sbagliata che fa è nell'inserimento e non nel risultato, ovvero se io scrivo 1000.10 mi restituisce come voglio io 1000,10 mentre se un utente inserisce 1000,10 quella virgola al posto del punto incasina tutto...

    solo che nn capisco come fare a invertire quella virgola con 1 punto...^^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.