Ich versuche, Dezimalzahlen in einer AngularJS App konsequent anzuzeigen.JavaScript: Get Dezimaltrennzeichen verwendet in Eingangstyp = "Nummer"
Dezimalzahlen im Text (span/div/...) sollten mit dem gleichen Trennzeichen wie Dezimalzahlen in Eingabefeldern angezeigt werden.
Es spielt keine Rolle, ob Kommas oder Punkte verwendet werden.
Wie finden Sie das Dezimaltrennzeichen, das der Browser in <input type="number">
Felder verwendet?
Ich versuchte mit toLocaleString
und AngularJS number filter
, aber das stimmt nicht immer mit Eingabefeldern überein, da einige Browser nicht das Gebietsschema des Benutzers für Eingabefelder berücksichtigen.
Ich möchte nicht <input type="text">
verwenden, aus Gründen der Benutzerfreundlichkeit auf mobilen Geräten.
* "... da einige Browser die für Eingabefelder locale Berücksichtigung des Benutzers nicht nehmen." Wirklich? Blech. –
Wenn es wirklich der Fall ist, dass Browser die falschen Tausender/Dezimal Trennzeichen in 'input type =" number "' Felder verwenden (was schwer zu glauben ist, ehrlich gesagt, aber ich habe jetzt keine Zeit zu überprüfen), würde ich sagen Das ist nicht dein Problem: Dateifehlerberichte mit den entsprechenden Browseranbietern verwenden das korrekte, länderspezifische Format (z. B. 'toLocaleString' oder Angulars' Nummer'Formatierer), und wenn sich jemand über die Eingaben beschwert, leite sie an den Fehlerberichten . –
@ T.J.Crowder das Problem ist, dass die HTML5-Spezifikation nicht viel darüber sagt. Browser sind ziemlich frei, um Eingabefelder anzuzeigen, wie sie wünschen, und nicht alle verwenden Gebietsschema. Siehe zum Beispiel dieses Blog: https://ctrl.blog/entry/html5-input-number-localization – fikkatra