gondor: Wert validieren

Hallo!

Wie kann ich mittels JS einen Wert validieren?

Der User kann folgendes angeben:

16,00
7,50
3,2
99,99

max. 2 Nachkommastellen, max. 2 Vorkommastellen

Danke für Hilfe,

gondor(..)

  1. Hell-O!

    Wie kann ich mittels JS einen Wert validieren?

    Mit einem Regulären Ausdruck, den du auf den String anwendest.

    Der User kann folgendes angeben:
    max. 2 Nachkommastellen, max. 2 Vorkommastellen

    Daraus ein Suchmuster zu bauen, sollte nicht schwer sein.

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    Welcome To Carcass Cuntry || Steuerfreie Geburtsbeihilfen?  || RT 221 Erfurt-Altstadt i.V.
    1. Hi Siechfred!

      Leider habe ich immer noch Schwierigkeiten mit dem regulären Ausdruck.

      Es müssen(!) ja Zahlen sein und die Nachkommastelle kann 7,53 oder 7,4 lauten. Irgendwie scheiter ich an den Ausdruck. Kannst Du mir noch einmal einen Tipp geben?

      Danke,

      gondor(..)

      1. hi,

        Es müssen(!) ja Zahlen sein

        Dazu kannst du das \d - wie du inzwischen nachgelesen hast: "findet eine beliebige ganze Zahl. \d bedeutet eine Ziffer (0 bis 9)"

        und die Nachkommastelle kann 7,53 oder 7,4 lauten.

        Oder auch "x,"?
        Oder auch nur "x"?

        Du willst also erst mal Ziffern finden, dann optional ein Komma, und dann (wenn dieses Komma aufgetaucht ist) noch mal optional zwei Ziffern.

        Um einen Teilausdruck a bis b mal hintereinander zu finden, kannst du einen Quantifier nutzen, {a,b}

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hello out there!

          Oder auch "x,"?

          Muss wohl nicht sein.

          Oder auch nur "x"?

          Das aber unbedingt.

          Du willst also erst mal Ziffern finden, dann optional ein Komma,

          Anstelle des Kommas sollte auch '.' als Dezimaltrennzeichen erlaubt sein.

          See ya up the road,
          Gunnar

          --
          “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          1. Mgölich wäre z.B. ungetestet(!):

            (\d\d?)(,\d\d?)?

            Falls auch "x," erlaubt sein soll:

            (\d\d?)(,(\d\d?)?)?

            Und falls auch ein Punkt gehen soll:

            (\d\d?)(.,?)?

            1. Ich bin am verzweifeln ;-)

              gar nicht so einfach mit den Expressions...

              Also, hier mal mein Code:

              var myvalue = "20.1"; /120.34; 7,5; 23,d4;
              var reg = /,-{1,}|.-{1,}/;
              var nantest_value = myvalue.replace(reg,"");
              var num = nantest_value.match(/[^0-9,.]/gi)

              if (myvalue) {

              if (num != null) {
                  alert("Buchstaben im Wert");
                  valid = false;
                  break;
                }

              var regular = /(\d\d)(.,?)/;
                var tax = regular.exec(myvalue);
                alert(tax);
              }

              Der reguläre Ausdruck gibt folgendes aus:

              20.1,20,.1,1

              Kann das richtig sein?

              Es sollen alle Zahlen zwischen 0,00 bis 99,99 erlaubt sein.

              Danke für alle Ratschläge,

              gondor(..)

              1. Hello out there!

                var regular = /(\d\d)(.,?)/;

                Du möchtest nicht genau zwei Ziffern, sondern eine oder zwei.

                See ya up the road,
                Gunnar

                --
                “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
                1. Einen schönen guten Abend.

                  var regular = /(\d\d)(.,?)/;

                  Du möchtest nicht genau zwei Ziffern, sondern eine oder zwei.

                  ... oder gar keine.

                  So long,
                  Oku

                  1. Hello out there!

                    Du möchtest nicht genau zwei Ziffern, sondern eine oder zwei.
                    ... oder gar keine.

                    Würde ich nicht machen. Wenn Dezimaltrennzeichen, dann auch Ziffern dahinter. Ob eine führende Null vorm Dezimaltrennzeichen sein muss, darüber bin ich bereit zu verhandeln. ;-)

                    See ya up the road,
                    Gunnar

                    --
                    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
                    1. Einen schönen guten .

                      Du möchtest nicht genau zwei Ziffern, sondern eine oder zwei.
                      ... oder gar keine.

                      Würde ich nicht machen. Wenn Dezimaltrennzeichen, dann auch Ziffern dahinter.

                      Und wenn man das Dezimaltrennzeichen auch weglassen soll/kann? Ich halte es für benutzerfreundlicher, auch eine Zahl ohne Komma, bzw. ohne Punkt eintragen zu lassen.

                      So long,
                      Oku

                      1. Einen schönen guten Abend.

                        Einen schönen guten .

                        Einen schönen guten was denn? Oh Gott, ich glaube ich lege mich gleich für ein paar Tage schlafen, alles andere wäre bei mir jetzt komplett sinnlos ...

                        So long,
                        Oku

                      2. Hello out there!

                        »»» Und wenn man das Dezimaltrennzeichen auch weglassen soll/kann? Ich halte es für benutzerfreundlicher, auch eine Zahl ohne Komma, bzw. ohne Punkt eintragen zu lassen.

                        In diesem Punkt hatte ich [wahsaga] bereits zugestimmt.

                        See ya up the road,
                        Gunnar

                        --
                        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)