Bernd: Nur Ganzzahlen erlaubt (...+ Null)

Hallo!

Ich überprüfe während der EIngabe mittels dem Eventhandler "onKeyUp", ob in einem Form-Feld tatsächlich Ganzzahlen eingetragen werden.

if(! menge.match(/[1]+$/)) {
   alert("Nur Ganzzahlen erlaubt!");
} else ...

Problem: hat ein User z.B. einen Buchstaben eingetragen, geht der Alert zwar richtig los. Aber wenn er mit der Backspace-Taste seine Fehleingabe korrigieren möchte, leider ebenfalls.

Wie haben die Regular Expressions richtig auszusehen?

Vielen Dank,
Bernd


  1. 0-9 ↩︎

  1. Hallo!

    if(! menge.match(/[1]+$/)) {
       alert("Nur Ganzzahlen erlaubt!");
    } else ...

    Hallo!

    Wie wäre es mit:

    if(menge%2 != 0) {}

    (Sofern es eine modulo rechnung in JS gibt)

    Gruß


    1. 0-9 ↩︎

    1. @alle: danke für eure Hilfe!

      @Christian: stimmt! Der erste Vorschlag ist elegant...

      @Kuftel: Den Modulus gibt´s auch bei JS, aber der hilft hier nicht weiter. Nimm als Beispiel die Zahl 17, da kommt nicht Null heraus (wie auch, wenn es eine Primzahl ist ;-)) Damit könnte man nicht einmal gegenprüfen, ob es ein Float ist (was vermutlich deine Intention war).

      1. In der Tat!
        hatte mich verlesen!

  2. Hi,

    ich würde hier einen anderen Ansatz verfolgen, und zwar beim keypress event, das Zeichen ermitteln. wenn es eine Zahl ist, dann ok, sonst das event mit preventDefault canceln, so dass das Zeichen erst gar nicht eingegeben wird.

    Ansonsten kannst du auch noch mit isNaN, isFinite oder parseInt arbeiten.

    Gruß!