Rolf B: Zahlenformate javascript -> php

Beitrag lesen

Hallo eddi-z,

Gruppierkommas entfernt man aus einem String mit

wert = wert.replace(/,/g, '');

Der naive Ansatz wert = wert.replace(',', ''); ist in JavaScript falsch. Falls es mehr als ein Komma gibt, würde nur eins entfernt. Man muss die Regex mit Global-Flag nehmen.

Aber du bist da auf einem dünnen Eis. Willst Du wirklich ausschließlich das US-Zahlenformat unterstützen? Wälzt Du damit nicht Programmierprobleme auf deine Anwender ab?

Das Thema Zahlenformatierung ist nämlich komplex, und international sehr variabel. Die Schreibweisen 1,234,567.88 / 1.234.567,99 / 1 234 567,99 oder 1'234'567,99 sind nur die Spitze des Eisbergs (unter anderem deswegen, weil die Leerstellen und Apostrophe bei typographischem Zahlensatz keine normalen Leerstellen und Apostrophe sind, sondern schmale Leerstellen und Hochstriche). Quelle

Ein kleiner Ansatz zum universaleren Zahlenverständnis wäre

wert = wert.replace(/[^-1234567890.]/g, "")

das würde ALLES außer Ziffern, Minuszeichen und Dezimalpunkt wegwerfen. Die Anwenderin kann dann gruppieren, wie sie will. Dem Anwender muss lediglich ganz deutlich gemacht werden, dass das System Dezimalpunkte erwartet. Eine Einstellmöglichkeit für die Anwender wäre natürlich optimal.

Rolf

--
sumpsi - posui - clusi