Wie kann man mit Javascript Zahlenwerte in einer Textbox (input-Element) so formatieren, dass sie mit einem Tausender-Trennpunkt angezeigt werden?
Hierzu kann man sich eine prototype-Methode zum String-Objekt schreiben.
Der Ansatz ist recht einfach eigentlich - man zerlegt einfach den String immer wieder in 3 Zeichen große Teile und legt diese in einem Array ab. Anschließend rollt man das Array von hinten auf, macht noch zwei Ersetzungen und fertig ist es.
String.prototype.toLocaleFormat = function() {
var n = this;
ns = String(n).replace('.', ',');
var w = [];
while (ns.length > 0) {
var a = ns.length;
if (a >= 3) {
s = ns.substr(a - 3);
ns = ns.substr(0, a - 3);
} else {
s = ns;
ns = "";
}
w.push(s);
}
for (i = w.length - 1; i >= 0; i--) {
ns += w[i] + ".";
}
ns = ns.substr(0, ns.length - 1);
return ns.replace(/\.,/, ',');
}
Ihr Kommentar zu diesem Beitrag: