Normalerweise können JavaScripts nur mit Zahlen arbeiten, die als
Dezimalzeichen einen Punkt benutzen. Der Ziffernblock auf der deutschen Tastatur
ist aber üblicherweise auf das Dezimalkomma eingestellt.
Damit die Werte in Eingabefeldern weiterverarbeitet werden können, wandelt
die folgende Funktion das Dezimalkomma in einen Dezimalpunkt um.
Syntax
Zahl = InZahl(Wert)
Wert
Text, der eine Zahl mit Komma als Dezimaltrennzeichen enthält
Zahl
Rückgabewert. Zahl mit Punkt als Dezimaltrennzeichen
Anmerkungen
Es können auch Ganzzahlen ohne Komma eingegeben werden.
Wenn die Eingabe nicht als Zahl identifiziert werden kann, wird der Fehlerwert
NaN (=Not a Number) zurückgegeben.
Das JavaScript nimmt an, daß alle Punkte, die vor dem Komma liegen,
Tausendertrennzeichen sind und entfernt diese.
Punkte, die nach dem Komma liegen, werden als Trennzeichen interpretiert
und schneiden die Zahl ab.
Funktions-Demo
Das folgende Formular demonstriert die Wirkung der Funktion.
Code
<SCRIPT LANGUAGE="JavaScript1.1" TYPE="text/javascript"><!--
/* Wandelt das Dezimalkomma in einen Dezimalpunkt um */
function InZahl (Wert)
{ // Erstellt von Ralf Pfeifer, www.ArsTechnica.de
var PosPunkt = Wert.indexOf(".",0);
var PosKomma = Wert.indexOf(",",0);
if (PosKomma < 0) PosKomma = Wert.length;
// Dezimalpunkte zur Tausendergruppierung entfernen
while ((0 <= PosPunkt) && (PosPunkt < PosKomma))
{
Wert = Wert.substring(0, PosPunkt) + Wert.substring(PosPunkt + 1, Wert.length);
PosPunkt = Wert.indexOf(".",0);
PosKomma--;
}
// Enthaelt die Variable 'Wert' ein Komma ?
PosKomma = Wert.indexOf(",",0);
if (PosKomma >= 0)
{ Wert = Wert.substring(0, PosKomma) + "." + Wert.substring(PosKomma + 1, Wert.length); }
return parseFloat(Wert);
} // -->
</SCRIPT>