Was in Excel oder OpenOffice nur ein Mouseclick ist könnte in einem JavaScript-Code wie folgt aussehen - das Tausendertrennzeichen für z. B. Währungen!
Aufgerufen wird die Funktion mit einer Variablenzuweisung (für den Rückgabewert) und
den drei Parametern: Die Zahl, der Modus und das Trennzeichen.
Achtung: Die Funktion gibt einen String zurück!
Der Quellcode kann auch im MachMal von css4.at eingesehen werden!
Funktionsnamen mit den drei Parametern. Eine Prüfung ob der erste Parameter auch eine Zahl ist
und vier Variablendeklarationen. Die zahl wird in einen String() gewandelt.
Sollte die Zahl eine negative Zahl sein, so wird diese in eine positive umgewandelt. In der Variabel vorzeichen wird das Minuszeichen mit einem Leerzeichen definiert. Man kann hier auch ein Eurosymbol bzw. ein anderes (Währungs)Zeichen.
Zuerst wird geprüft, ob in der übergebenen Zahl (jetzt in der _temp gespeichert) ein Dezimalzeichen vorkommt.
Mit .indexOf wird ermittelt auf welcher Stelle ein bestimmtes Zeichen vorkommt.
Wird keines gefunden, dann gibt die Methode -1 zurück. Bei Erfolg, wird die Position des Dezimalzeichen (der Punkt)
gespeichert und mittles .slice die Nachkomma und Vorkommawerte sauber getrennt!
Wenn es keine Dezimalstellen gibt, dann wird die gesammte Zahl als Vorkommastelle definiert und der Nachkommastelle einfach eine Null mitgegeben.
Die Anzahl der Stellen wird in der _anzahl Variable definiert.
Ein Zähler _c wird mit dem Wert 0 vereinbart.
Es folgt eine Prüfung, ob die Zahl eigentlich mehr als 4 Stellen hat. Alles darunter wäre doch Sinnlos,
weil welche Tausenderpunkte sollen gesetzt werden, bei einer Zahl die nicht größer als 999 ist?
Die while Schleife wird ausgeführt, so lange die Anzahl der Stellen größer als die Zählvariable _c ist.
Mit var _position = _vorkomma.length - _c; wird das Pferd von hinten gesattelt.
Während die Zählvariable immer größer wird, wird die Postion immer kleiner. Die einzelenen Strings
werden von hinten gelesen und so auch wieder zusammengesetzt. Mit dem Unterschied, dass alle drei mal
ein Trennzeichen gesetzt wird.
Hier leistet die Modulo Operation mit 3 hervorragende Arbeit. Alle drei mal gibt es eine 0 - also den Auftrag das Trennzeichen einzusetzen.
Erreicht die Position die Stelle 0 dann wird die Schleife verlassen. So verhindert man noch einen letzten Punkt wo er nicht sein soll!
Zum Schluss wird noch der Modus aufgearbeitet. Wir erinnern uns: Beim Funktionsaufruf kann man entscheiden, wie mit der Nachkommastelle verfahren werden soll. Zusätzlich kommt noch das Minuszeichen (bei einer negativen Zahl) dazu. Der return Auftrag beendet die Funktion ... et voilà!