Axel Hogestraat: Flexible Wärungseingabe

Beitrag lesen

Sorry,

war zu voreilig. War noch etwas fehlerhaft.
So müsste es nun gehen:
function convertCurrency(value) {
 // Zeichen , und . gleichsetzen
 value = value.replace(/,/, ".");
 // Letztes Vorkommen von "."
 last = value.lastIndexOf(".");
 if(last < 0) return value;
 // Teilstrings ermitteln
 bgnStr = value.substring(0, last);
 endStr = value.substring(last+1, value.length);
 // Alle Trenn- oder Dezimalzeichen vor dem letzten entfernen
 bgnStr = bgnStr.replace(/./, "");

// Prüfen der Ziffern-Anzahl nach letztem Trennzeichen
 switch(endStr.length) {
  case 0: // Keine Nachkommastellen -> Ganzahl zurückgeben
   return bgnStr+".00";
   break;
  case 1: // Eine Nachkommastelle -> Mit 0 auffüllen und zurückgeben
   return bgnStr+"."+endStr+"0";
   break;
  case 2: // Zwei Nachkommastellen -> Zurückgeben
   return bgnStr+"."+endStr;
   break;
  case 3: // Drei 'Nachkommastellen' -> Tausendertrennzeichen -> ohne zurückgeben
   return bgnStr+endStr;
   break;
  default:  // Mehr als Drei 'Nachkommastellen' -> Tausendertrennzeichen -> ohne zurückgeben
   return bgnStr+endStr;
   break;
 }
}

Schönen Gruß
Axel