„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich Probleme mit der Oktalinterpretation von parseInt in JavaScript vermeiden?

Wie kann ich Probleme mit der Oktalinterpretation von parseInt in JavaScript vermeiden?

Veröffentlicht am 22.12.2024
Durchsuche:539

How Can I Avoid parseInt's Octal Interpretation Issues in JavaScript?

JavaScripts Oktalgefahr: Problemumgehungen für das Fehlverhalten von parseInt

JavaScripts parseInt-Funktion kann stolpern, wenn sie auf Zahlen mit führenden Nullen stößt. Das Problem ergibt sich aus der Tendenz, führende Nullen als Oktalziffern zu interpretieren, was zu fehlerhaften Ergebnissen führt.

Beispiel:

parseInt('01'); // 1
parseInt('08'); // 0 (invalid octal digit)

Problemumgehungen:

  • Geben Sie die Basis (Basis) an

Die einfachste Lösung besteht darin, explizit die Basis oder Wurzel der Zahl anzugeben. Dies kann mit dem zweiten Parameter von parseInt erfolgen:

parseInt('08', 10); // 8 (specifying base 10)
  • Zahlenkonstruktor verwenden

Alternativ kann der Zahlenkonstruktor zum Analysieren von Zahlen verwendet werden, einschließlich solcher mit Führende Nullen:

Number('08'); // 8
  • In Basis 10 konvertieren String

Ein anderer Ansatz besteht darin, den String vor dem Parsen in Basis 10 zu konvertieren:

parseInt(parseInt('08', 8).toString(), 10); // 8 (convert octal to base 10)
  • Regulären Ausdruck verwenden

Reguläre Ausdrücke können verwendet werden, um führende Nullen zu entfernen:

parseInt(/^0 (.*)$/gm('008')); // 8 (match and capture non-zero digits)

Hinweis:

In der 5. Ausgabe von JavaScript (ECMA-262) hat sich das Verhalten von parseInt geändert, wodurch Folgendes beseitigt wurde das Problem der Oktalinterpretation. Aus Kompatibilitätsgründen mit älteren Versionen von JavaScript wird jedoch empfohlen, eine der oben genannten Problemumgehungen zu verwenden, wenn Zahlen mit führenden Nullen auftreten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3