JavaScript: parseInt() mit führenden Nullen

von Bernd Hort,
assono GmbH, Standort Hamburg,

Auf den ersten Blick ist die Funktion parseInt() in JavaScript sehr einfach. Ein übergebener String wird in eine Integerzahl umgewandelt. Wenn der übergegeben String aber führende Nullen beinhaltet, kann es zu interessanten Phänomenen kommen.

Aufgefallen war es gestern bei einer Anwendung als es darum ging, in JavaScript aus dem als Zahl gespeicherten Monat die ausgeschriebene Form zu bestimmen. Das Problem war, dass für die Sortierung die Monate bis Septemer als String mit führender Null gespeichert waren.
parseInt("07") lieferte richtig 7 zurück. parseInt("08") lieferte NaN zurück, was soviel heißt, wie die Zahl konnte nicht umgewandelt werden.

Mit Googles Hilfe und der JavaScript-Referenz in SelfHTML haben wir des Rätsels Lösung gefunden.

parseInt() kann nicht nur Zahlen des Dezimalsystems umwandeln, sondern auch Zahlen einer anderen Zahlenbasis. Das kann z.B. sehr praktisch sein, wenn Hexadezimalzahlen in Dezimalzahlen umgewandelt werden sollen. Die meisten Entwickler, mich eingeschlossen, wissen nicht, dass es für parseInt() einen zweiten, optionalen Parameter radix gibt. Mit seiner Hilfe kann die Zahlenbasis bestimmt werden. Fehlt dieser Parameter versucht parseInt() anhand des übergegebenen Strings die Zahlenbasis zu bestimmen.

Fängt der String mit "0x" an, wird er als Hexadezimalzahl interpretiert. Fängt er mit "0" an, wird er als Oktalzahl interpretiert. Bei Oktalzahlen sind aber nur Zeichen von 0 bis 7 erlaubt. Deswegen liefert parseInt("07") richtig 7 zurück, während parseInt("08") eine Fehlermeldung zurückliefert.

Gibt man die Zahlenbasis mit an, so funktioniert die Funktion wie erwartet:
parseInt("08", 10) liefert 8 zurück.smile.gif

Fachbeitrag JavaScript Entwicklung

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen? Wir sind für Sie da.

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Sie können uns auf verschiedene Weisen für eine unverbindliche Erstberatung erreichen:

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de