Rolf B: Alle Zeichen entfernen ausser ZAHLEN

Beitrag lesen

Hallo Franz,

einatmen. Ausatmen. Ruhe. Ok?

Den Replace brauchst Du nur einmal. In der Function. Vor dem parseFloat. Aber wenn Du a-zA-Z in den replace mit hinein nimmst, dann bleiben auch die ASCII Buchstaben stehen. Der Replace, den du außerhalb der Funktion aufrufst, wäre richtig. Nur geht der schief, weil die Funktion keinen String, sondern eine Zahl liefert. Also: Replace außerhalb der Funktion weg, und beim Replace innerhalb der Funktion die Regex fixen.

Das ist aber nur das Lesen des Wertes als Zahl, und damit nur die halbe Miete. Wenn Du die Tausendertrenner und das Eurozeichen im Input sichtbar haben willst, dann müsstest Du während der Benutzereingabe ständig nachkorrigieren. Und das verhagelt dem Anwender die Freude an der Eingabe, weil das Überschreiben des Wertes den Cursor ans Feldende stellt. Und den korrekt nachzuführen, macht die von mir erwähnte Mühe. Du kannst input-Inhalte nach Verlassen des Feldes natürlich per Script formatieren.

Noch ein Tipp: Der parseFloat sollte dann eigentlich immer gelingen, außer wenn keine einzige Ziffer im Feld stand. Dann gibt's NaN. An der Stelle kannst Du Dir zu Nutze machen, dass NaN ein falsy value ist, d.h. bei booleschen Vergleichen wie FALSE behandelt wird. Du kannst Dir weiterhin zu Nutze machen, dass die booleschen Operatoren && und || nicht true und false zurückgeben, sondern einen ihrer Operanden.

a && b ergibt a wenn a falsy ist und b, wenn a truthy ist.
a || b ergibt a, wenn a truthy ist und b, wenn a falsy ist.

Demnach ist parseFloat(xyz) || 0 ein einfaches Mittel, um ein NaN Ergebnis auf 0 umzusetzen.

Also (mit Trennung von Lesen und Konvertieren):

function getInputAsFloat(element) {
  let inhalt = element.value.replace(/[^0-9 ]/g, "");
  let value = parseFloat(inhalt);
  return value || 0;
}

oder als Einzeiler

function getInputAsFloat(element) {
  return parseFloat(element.value.replace(/[^0-9 ]/g, "")) || 0;
}

Rolf

--
sumpsi - posui - obstruxi
0 77

JavaScript Ergebnis in INPUT Feld + Zahl mittels CSS formatieren

Franz
  • css
  • html
  • javascript
  1. 1
    JürgenB
    1. 0
      Franz
      1. 0
        JürgenB
      2. 0
        Franz
        1. 2
          JürgenB
    2. 1
      Gunnar Bittersmann
      • html
      • javascript
  2. 0

    INPUT Feld als Währung während der Eingabe formatieren

    Franz
    1. 0
      Rolf B
      1. 0

        Alle Zeichen entfernen ausser ZAHLEN

        Franz
        • javascript
        1. 0
          Franz
          1. 0
            Rolf B
            1. 0
              Der Martin
              1. 0
                Matthias Apsel
                1. 0
                  Tabellenkalk
                  1. 0
                    Matthias Apsel
                  2. 0
                    Der Martin
                    1. 0
                      Rolf B
              2. 0
                Gunnar Bittersmann
                1. 0
                  Rolf B
                  1. 0
                    Gunnar Bittersmann
                    1. 2
                      1unitedpower
                2. 0
                  Der Martin
                  1. 1
                    Rolf B
                  2. 0
                    Gunnar Bittersmann
                    1. 0
                      Der Martin
            2. 0

              Script trotzdem ausführen, auch wenn Variable nicht da ist, nicht existiert!

              Franz
              1. 0
                Gunnar Bittersmann
                1. 0
                  Franz
                  1. 0
                    Matthias Apsel
                    1. 0
                      Franz
                      1. 0
                        Matthias Apsel
                      2. 0
                        Tabellenkalk
              2. 3
                Rolf B
                1. 0
                  Franz (in den grossen Stiefel von Watson)
                  1. 0
                    Rolf B
                    1. 0
                      Franz
                      1. 0
                        Rolf B
                        1. 0
                          Franz
                          1. 2
                            Rolf B
                            1. 0
                              Franz
                              1. 0
                                Rolf B
                                1. 0

                                  funktionen in zwei Dateien geht nicht, in einer Datei gehen sie???

                                  Franz
                                  1. 1
                                    Rolf B
                              2. 0
                                Der Martin
                                1. 0
                                  Gunnar Bittersmann
                                  • css
                                2. 0
                                  Franz
                                  1. 0
                                    Der Martin
                                    1. 1
                                      Gunnar Bittersmann
                                      1. 0
                                        Franz
                                        1. 0
                                          Matthias Apsel
                                          1. 0
                                            Rolf B
                                        2. 1
                                          Rolf B
                                          1. 0
                                            Der Martin
                                          2. 0
                                            Gunnar Bittersmann
                                            1. 0
                                              JürgenB
                                        3. 1
                                          MudGuard
                                          1. 0
                                            JürgenB
                                            1. 0
                                              Rolf B
                                              1. 0
                                                JürgenB
                                                1. 0
                                                  Rolf B
                                                  1. 0
                                                    JürgenB
                                                2. 0
                                                  Der Martin
                                3. 3
                                  1unitedpower
                                  1. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      Rolf B
                                      1. 0
                                        Gunnar Bittersmann
                                        • sonstiges
                                        1. 0
                                          Matthias Apsel
                                          1. 0
                                            Gunnar Bittersmann
                                            1. 0
                                              Matthias Apsel
                                              1. 0
                                                Der Martin
                                        2. 0
                                          Gunnar Bittersmann
                                4. 0
                                  Rolf B
                                  1. 0
                                    Der Martin
                                    1. 0
                                      Rolf B
  3. 1
    Gunnar Bittersmann
    • formatierung
    • formulare
    • javascript
    1. 1
      Gunnar Bittersmann