JavaScript: parseInt() mit führenden Nullen

von Bernd, assono GmbH, Standort Hamburg, 10.07.2009

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

Bernd Hort

Bernd Hort

Diplom-Informatiker, Software-Entwickler & Speaker auf Fachkonferenzen

Bernd Hort ist Expert Digital Business Consultant bei assono. Seit mehr als 20 Jahren entwickelt er erfolgreich individuelle Software-Anwendungen für Unternehmen verschiedener Branchen. Insbesondere in den Bereichen HCL Notes und Domino (ehemals IBM) als auch bei aktuellen, unternehmensrelevanten Themen wie Web-Entwicklung und Web-Architektur, bei Angular-Anwendungen als auch bei progressiven Web-Apps kennt er die neusten Entwicklungen und weiß, wie diese eingesetzt werden können, um den größten Kundennutzen zu erzielen. Aufgrund seines Expertenwissens ist Bernd Hort regelmäßiger Sprecher auf nationalen und internationalen Fachkonferenzen.

Fachbeitrag Entwicklung JavaScript

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

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel