Newsgroup: it.comp.lang.javascript
Titolo: Aiuto! Il metodo o la proprietà non sono supportati dall'oggetto

Salve
Volevo scrivere una funzione che dato un valore in ingresso (fornito come
oggetto String) del tipo <b>1250000.50</b> mi restituisse
<b>1.250.000,50</b><br>
Mettesse, inssomma i separatori decimali e di migliaia secondo la notazione
italiana.<br>
Questo è cio che ho scritto:<br><br>
<pre>
 1. function MettiPunti(valore) {
 2.  pattern = /\./;
 3.  parti = valore.split (pattern);
 4.  pattern = /./;
 5.  cifre = parti[0].split (pattern);
 6.  for (i = cifre.length-3; i = 3; i -= 3) {
 7. 	cifre.splice(i,0,'.');
 8.  }
 9.  newval = '';
10.  for (i = 0; i < cifre.length; i++) {
11.     newval += cifre[i];
12.  }
13.  newval += ','+parti[1];
14.  return newval;
15. }
</pre><br><br>
Purtroppo non sono riuscito a verificare se funziona o meno perchè il browser
mi dice che alla riga <b>3</b> il metodo o la proprietà non sono supportati
dall'oggetto.<br>
Eppure nella funzione analoga che ho scritto per Togliere i separatori tutto
funziona ed il codice è pressocchè uguale.<br>
Qualcuno può dirmi cosa sbaglio?<br>
Grazie<br>
-Valerio-<br>
-- 
Posted from  [62.98.108.68] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

function formatnumber(s) {
  for (var
i=(String(s).indexOf(",")+1?String(s).indexOf(","):String(s).length)-3;i>0;i
-=3)
   s=String(s).substring(0,i)+"."+String(s).substring(i,String(s).length);
  return s;
 }

 wrote in message
news:9sdtup$p7s$1...@fe2.cs.interbusiness.it...

-- 
Posted from  [62.98.12.251] 


Chiama la function con formatnumber(String(tuacifra).replace(/\./,","))
(anche perché se usi il punto come separatore decimale come distingui poi il
separatore dal decimale? 1.024.253 cos'è, un milioneedispari o
milleventiquattro con 3 decimali?)

 milleventiquattro con 3 decimali?)
Scusa, allargo un pò il discorso.
Quando un utente introduce un numero desidero che lo possa fare
scrivendo (per maggior chiarezza) "1.250,75".
Ora per fare il totale delle cifre da lui inserite prima devo portare il 
numero nel formato "1250.75", sommarlo agli altri, quindi visualizzare il
totale nel primo formato ad es. "6.500,25".
Spero di essere stato chiaro e di non averti annoiato troppo.
Ancora grazie, a presto
-Valerio-
-- 
Posted from  [62.98.30.214] 


Se l'utente usa sicuramente virgola per i decimali e punto per eventuali
migliaia togli i decimali quando passi alla function
(cifra.replace(/\./g,"")); se può usarli indifferentemente uno o l'altro non
so che dirti, ritorno alla mia domanda: come distingui 1.000.0001 ? (un
milioneedispari o mille con 3 decimali)?
Far inserire il separatore di migliaia all'utente non mi pare pulitissimo,
io lo eviterei...

 milleventiquattro con 3 decimali?)
L'utente (per comodità o abitudine) deve poter inserire "1.250,4", supponiamo 
che poi occorra fare (e visualizzare) il totale di vari input, prima devo 
convertire "1.250,4" in "1250.4" (e così per gli altri) poi posso farne la
somma che andra alla fine visualizzata come "6.520,75" ad esempio.
Spero di essere stato chiaro e di non averti annoiato.
Ancora Grazie
-Valerio-
-- 
Posted from  [62.98.31.132] 


Chiedo scusa, non riuscivo a vedere il precedente post e la conseguente
risposta.


 io lo eviterei...
Figurati! Fosse per me...
Grazie
-Valerio-
-- 
Posted from  [62.98.31.132] 
